Krzywe Lissajous
Janusz Sobieraj - 28 LO

Konstrukcja krzywej Lissajous

Z Wikipedii :

Jedna z metod uzyskiwania krzywych Lissajous jest podanie na wejscia oscyloskopu, pracujacego w trybie XY, dwóch sygnalów sinusoidalnych o czestotliwosciach pozostajacych w stosunku a/b.

void osie(Graphics g,double fi)
   {double t,dt=0.1;
    pkt2d w=new pkt2d(0,0);
     
     // oś pozioma
     t=-lo28.max_x();
     w.war(t,fx(t-fi));
	   lo28.kursor(g,w);
	  for(t=-lo28.max_x();t<=0;t+=dt)
	    {
	      w.war(t,fx(t-fi));
	      lo28.kursor(g,w);		    
	    }
	    
	    // oś pionowa
	    t=-lo28.max_y();
	    w.war(fy(t-fi),t);
	    lo28.kursor(t,fx(t-fi));
	    for(t=-lo28.max_y();t<0;t+=dt)
	    {
		   w.war(fy(t-fi),t);		   
		   lo28.kursor(g,w);
	    }
	    
       // rysuj punkt krzywej Lissajous
      w.war(fy(-fi),fx(-fi)); 
      lo28.kropka(g,k,Color.red);
   }
double fx(double t)
   {
	   return A*Math.sin(a*t+fi_x);
   }
//--------------------------------------- 
double fy(double t)
   {
	   return B*Math.sin(b*t);
   }

Powyżej ilustracja tej metody.

Konstruujemy krzywą x(t)=Asin(at+fi_x),y(t)=Bsin(bt).
Zaczynam od "ruchomych" sinusoid, które nazywam osiami, potem punkt krzywej.

Parametr fi w procedurze osie "daje" powód animacji obu osi.