Die Kerze besteht aus Parameterflächen für die Komponenten Körper (Zylinder und Kreisscheibe), Docht (Zylinder) sowie Tropfen und Flamme. Letztere werden mit der gleichen parametrischen Funktion erzeugt:
x = a (c - cos(u)) sin(u) cos(v)
y = a (c - cos(u)) sin(u) sin(v)
z = b cos(u)
mit u = 0, ..., π und v = 0, ..., 2 π.
Hierbei bestimmen für c = 1 die Parameter a die "Breite" und b die Höhe. Für Werte von c > 1 entstehen Formen mit abgerundeten Spitzen, wie die folgenden Beispiele zeigen.
Flamme/Tropfen mit
a = 0.4 b = 1.5 c = 1
Flamme/Tropfen mit
a = 0.4 b = 1.5 c = 1.5
Flamme/Tropfen mit
a = 0.8 b = 1.5 c = 1
Flamme/Tropfen mit
a = 0.8 b = 1.5 c = 1.5
Das "Tanzen" der Flamme wird erreicht, indem eine Variable t zeitlich animiert wird und dabei bei der Flamme kleine Zufallszahlen zur x-/y-Komponente addiert werden, welches einer waagerechten Verschiebung bezüglich der Dochtposition entspricht; zusätzlich wird die z-Koponente mit einer kleinen Zufallszahl multipliziert, wodurch die Flamme mehr oder weniger gestreckt wird.
Hier noch eine kleine Spielerei zum 3. Advent ...