|
Krzywe Lissajous 3D określimy równaniem parametrycznym :
(*)
(*) |
x(t)=A·sin(a·t)
y(t)=A·sin(b·y+φy)
z(t)=A·sin(c·t+φz)
|
Teraz należy zdecydować się na modelu przestrzennego sceny.
Zdecyduję się na prezentację
w rzucie równoległym.
Klasa _3d, wykorzystująca klasę lo28 i pkt3d, implementuje model.
Wygląd sceny 3D możesz zmieniać punktem Obs - kolor zielony.
Najprostsza wersja procedur rysujących krzywych 3D może wyglądać teraz tak:
double F_x(double t)
{
return Math.sin(a*t);
}
double F_y(double t)
{
return Math.sin(b*t+f_y);
}
double F_z(double t)
{
return Math.sin(c*t+f_z);
}
pkt3d F(double t)
{double x=A*F_x(t);
double y=A*F_y(t);
double z=A*F_z(t);
return new pkt3d(x,y,z);
}
|
void rysuj(Graphics g)
{double t,dt=0.01;
_3d.uklad(g);
_3d.kursor(g,F(0));
for(t=0;t<=6.28;t+=dt)
_3d.kreska(g,F(t));
}
|
|