Blog der Heimetli Software AG

Lissajous-Figuren

Die Lissajous-Figuren wurden vom gleichnamigen fanzösischen Physiker entdeckt.

Lissajous zeichente seine Kurven mit einem Lichtstrahl, den er durch Spiegel in x- und y-Richtung ablenkte. Als ich sie zum ersten mal sah, wurden sie von einem Elektronenstrahl in einem Oszilloskop produziert.

Die Lissajous-Figuren entstehen durch zwei Schwingungen. Die eine Schwingung bestimmt die x-Position des Punktes, die andere die y-Position. Im einfachsten Fall nimmt man zwei reine Sinus-Kurven und das entstehende Bild hängt von der Phasenlage und dem Frequenzverhältnis der beiden Schwingungen ab.

Normalerweise findet man im Internet nur einfache Kurven, die das Prinzip erklären. Bilder von komplexeren Funktionen scheinen niemanden zu interessieren.

Dieses Bild

Es ist sehr schwer abzuschätzen wie die Bilder aussehen werden, deshalb entstehen sie im Moment vor allem durch simples Ausprobieren von verschiedenen Werten.

Dieses hier ist definiert durch x = sin(a) - 0.75 * sin(16a) und y = cos(a) + 0.75 * cos(16a) wobei a den Winkel darstellt. Er läuft von 0 bis 2 * PI, also über einen vollen Kreis. Eine passende Skalierung sorgt dafür dass der Canvas gefüllt wird.

Der Path wird eingefärbt nach der Even-Odd Regel, weil der Default nur einen langweiligen "Fladen" produziert.


Weiterentwicklung

Falls sie das Bild mögen, dann kommen sie wieder zu dieser Seite zurück. Ich denke an eine Art "Lissajous-Figure of the Day". Das Hauptproblem dabei ist eine flexible und saubere Datenstruktur, die nicht allzu gross ist. Ein paar Ansätze habe ich schon, und ich bin zuversichtlich, dass ich mit etwas Grübeln eine Lösung finde.

Ein anderer Ansatz: die Besucher der Seite selber mit den Formeln spielen zu lassen. Erste Versuche mit eval() mit einer Formel aus einem Textfeld waren auch auf einem relativ schwachen PC schnell genug, zumindest mit Chrome. Auf dem Tablet ist die Eingabe der Formeln nicht gerade ein Vergnügen, aber die Geschwindigkeit war gar nicht schlecht.

Schlussendlich konnte ich mich nicht für ein Bild entscheiden und so habe ich eine neue Seite mit einer flexiblen Lissajous-Figur gemacht ...