Krzywe Lissajous
Janusz Sobieraj - 28 LO

Krzywe Lissajous w Javie

Możesz zmieniać:
- parametry liczbowe suwakami,
- możesz uruchić animację

Procedura rysująca jest następująca:
pkt2d f(double t)
 { double x=A*Math.sin(t*a+fi);
   double y=B*Math.sin(t*b);
	
	return new pkt2d(x,y);
 }
//-------------------------------------
void rysuj(Graphics g)
 { double dt=0.01;  
    
  lo28.uklad(g);
  lo28.kursor(g,f(0));
  for(double t=0;t<=2*Math.PI+dt;t+=dt) 
      lo28.kreska(g,f(t));
  }
Należy skorzystać oczywiście, z bibliotek:
- klasy lo28
oraz
- klasy pkt2d

Ponadto w Javie mamy do dyspozycji niezły interfejs w postaci komponentów np:
- Scrollbar (suwak)
- TextField (pole tekstowe)
- CheckBox (pole wyboru)
- Thread (wątek animacyjny)

Kształt krzywych jest szczególnie uzależniony od współczynnika a/b.
Dla współczynnika równego 1, krzywa jest elipsą, ze specjalnymi przypadkami okrąg gdy (A = B, φ = π/2 radianów) oraz odcinek (φ = 0).

Inne wartości współczynnika dają bardziej złożone krzywe, które są zamknięte tylko gdy a/b jest liczbą wymierną.

W naszym pokazie przyjęto, że współczynniki a i b są całkowite, zatem zawsze uzyskamy krzywą zamkniętą.

Dzięki płynnej zmianie fazy (parametru fi (φ) - włącz animację) uzyskuje się dobra iluzję trójwymiarowości - krzywa wydaje się "obracać". W najprostszm przypadku a ≈ b otrzymujemy efekt "krecącej sie monety".