Hier mal ein kleineres Schulprojekt von mir, eine Veranschaulichung von drei Parameterfunktionen:
- Zykloide: Die Bahn eines Punktes auf einem Kreis, der auf einer Geraden rollt
- Epizykloide: Dasselbe für einen auf einem anderen Kreis rollenden Kreis
- Hypozykloide: Dito für einen Kreis in einem anderen Kreis
Die Progressbars sollten selbsterklärend sein, a ist eine Verlängerung des Abstandes zwischen Punkt und Mittelpunkt, als ob dieser auf einer verkürzten/verlängerten Speiche läge (im oberen Bild ist a = 0.5).
Das Projekt basiert (natürlich

) auf der GR32-Lib bzw. einer selbstgeschriebenen Wrapper-Klasse für TBitmap32, die "Mathe"-koordinaten (also z.B. Linie von (-1|-1) nach (1|0,5)) intern in die Pixelkoordinaten umrechnet.
Der Code ist (eher zu wenig als zu viel) kommentiert, wobei das mein erster Versuch überhaupt war, also bitte etwas Erbarmen

, wenn etwas unklar ist, einfach hier nachfragen.
Die "problematischen" Parameter (r=1 bei Zykloiden und r > r2 bei Hypozykloiden) werden nicht abgefangen, ich finde es nett zu sehen, was die Mathematik und mein Programm aus diesen Grenzfällen machen, wobei derjenige bei Hypozykloiden ja sogar Sinn ergibt, wenn auch nicht in der ursprünglichen Definition der Hypozykloide.