|
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.
|