Lisp »Tips 'n Tricks »Lisp & Lissajous »1 »2 »3 »4 »5 »6 »7 Le curve di Lissajous (si pronuncia Lisajù) sono una famiglia di curve descritte dalle equazioni parametriche x(t)=A cos(ωxt-φx) e y(t)=B cos(ωyt-φy). In LISAJU1 sono semplificate in x(e)=sin(ei) e y(e)=sin(e). Questo è l'algoritmo: (while (< e j) (setq x (sin (* e i))) (setq y (sin e)) (command "_point" (list x y)) (setq e (+ e (/ 1.0 steps))) (setq i (+ i c)) ) LISAJU1
Test del Lisp Command: lisaju1
Command: lisaju1
Analisi del Lisp Notare che nell'istruzione che incrementa e ho scritto (setq e (+ e (/ 1.0 steps))) e non (setq e (+ e (/ 1 steps))) questo perché si deve forzare il numero intero (o la variabile) come reale per non ottenere come risultato 0. Esempio:
(while (< i j) (setq x (sin (* e i))) (setq y (sin e)) (command "_point" (list (+ x (car pStart))(+ y (cadr pStart))) ) (setq e (+ e (/ 1.0 steps))) ; steps (setq i (+ i c)) ) Command: lisaju1
Nella seconda parte del tutorial mostrerò come sviluppare un Lisp per disegnare nello spazio le figure di Lissajous (con entità punti, linee e sfere) compreso il riquadro di dialogo (file DCL) per l'input dei dati. Ultimo Aggiornamento_Last Update: 7 Maggio 2005 |