Zählschleifen
Beim Programmieren ist es oft nötig, daß ein Programmteil mehrmals durchlaufen wird. Dies kann durch Einbau einer Zählvariablen geschehen oder durch eine Wiederholung mit Anfangs- oder Endbedingung.
WHILE (i>0) ..... END
Solange der Zähler i > 0 ist, wird der Teil des POVRAY-Skriptes durchlaufen, der zwischen WHILE und END steht.
Beispiel:
#declare i=30;
#while (i>0)
#local X=i*10;
cylinder{<300-X,0,0>,<300,300-X+10,0>,2
pigment {color Silver}
finish{F_MetalA}
translate <-150,-150,0>
no_shadow}
#local i=i-4;
#end
Zunächst wird der Wert des Zählers i=30 gesetzt. Die nun folgende while-Schleife zeichnet Zylinder (die "Schnüre" in der Abbildung unten), die bei der zählerabhängigen Position X starten, dabei ist X immer das 10-fache des Zählers i.
Wichtig ist die Änderung für i in der vorletzten Zeile der Schleife: i wird jeweils um die Zahl 4 verkleinert. Falls diese Zeile fehlt, entsteht eine Endlosschleife, da i immer größer als 0 bleibt, das Programm stürzt ab.
Bemerkung: Mit 'declare' werden Variablen festgelegt, die für das ganze Programm gültig sind, mit 'local' werden Variablen festgelegt, die nur innerhalb eines Programmteils gültig sind.
Sinus und Kosinus
m rechtwinkligen Dreieck wird sin(x) als das Verhältnis von Gegenkahete zu Hypotenuse definiert. Variiert man den Winkel x, so erhält man die Sinusfunktion:
Entsprechend ist cos(x) das Verhältnis von Ankathete zu Hypotenuse: