Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
    Bedingte Anweisungen -
English English English

Home
- POV-Ray Tutorial

  - Bedingte
     Anweisungen

  Verzweigungen
   #if(...) ... #else ... #end
    - in Schleifen
    - in Macros
    - in Animationen
    - Ein-/Ausschalten von Teilen
   #switch(...) #case(..) ...
          #range(..) ... #end
    - Auswahl-Listen

  Existenz-Überprüfungen
   #ifdef(...) #ifndef(...)
    - Check in Include-Dateien
    - Defaults in Include-Dateien

  Schleifen
 >Prechecked, Postchecked,
 >Count-controlled, Early-Exit
   >#while(...)... #end
   >#for(...)... #end
    - Beispiele:
    - Schleifen in POV-Ray
    - Schleifen, Sinus, Kosinus
    - Random with POV-Ray
                                       

Schleifen mit bedingten Anweisungen

In der Szenenbeschreibungssprache (SDL) von POV-Ray existiert eine Schleifen-Struktur zur wiederholten Ausführung von Anweisungen, die es ermöglichen alle Arten von Schleifen darzustellen, die aus Programmiersprachen bekannt sind:

Realisierung in POV-Ray
Schleifen Typ
Andere
Programmiersprachen
#while (Bedingung)
 ... Anweisungsfolge
#end 
Vorhergeprüfte Schleife
"While-Schleife"

WHILE (
Bedingung)
DO
  Anweisungsfolge
END
JavaScript:

while (Bedingung) {
  (Anweisungen);
}
   

 ... Anweisungen1
#while (Invertierte Bedingung)
 ... Anweisungsfolge
#end 
Nachhergeprüfte Schleife
"Repeat-Schleife"

REPEAT
  Anweisungsfolge
UNTIL (
Bedingung)
END
JavaScript: "do-while"

do {
  (Anweisung);
} while (Bedingung);
   
Mit For-Schleife:(seit POV-Ray 3.7 beta37)
#for (Variable, Start, End[, Step])
   // step optional, default = 1
 ... statements
#end 
Mit While-Schleife:
#local Nr = Startwert;
#local NrEnd = Endwert;
#local Step = Schrittweite;
#while (Nr < NrEnd +Step)
 ... Anweisungsfolge
#local Nr = Nr + Step;
#end 
Zähl-Schleife
"For-Schleife"

FOR (Variable)=(Startwert) TO (Endwert)
STEP
Schrittweite
DO
  Anweisungsfolge
NEXT
JavaScript:

for (init; test; continue)
   (Anweisung);
   
Mit For-Schleife:(seit POV-Ray 3.7 beta37)
#for (Identifier, Start, End[, Step])
   // step optional, default = 1
   #if(condition)
      #break // terminate loop early
   #end
   ... statements
#end 
Mit While-Schleife:
#local Nr = Startwert;
#local NrEnd = Endwert;
#local Step = Schrittweite;
#while (Nr < NrEnd +Step)
 ... Anweisungsfolge
  #if  (Bedingung)
  #local Nr = NrEnd 
  #end 
#local Nr = Nr + Step;
#end 
Zähl-Schleife mit vorzeitigem Abbruch
"Early-Exit-Schleife"

FOR (Variable)=(Startwert) TO (Endwert)
STEP
Schrittweite
DO
  Anweisungsfolge
  IF (
Bedingung)
  Variable : = Endwert ;
  END IF
NEXT
JavaScript:

while (Bedingung) {
  if (Bedingung2)
    break;
  (Anweisungen);
}
   

Hinweis: Wenn man in den Bedingungen Flieskommazahlen verwendet, dann muß beachtet werden, dass extrem kleine Werte um ca. 1e-10 aufgrund der unvermeidbaren Rundungsfehler als Null gewertet werden.
top

© Friedrich A. Lohmüller, 2010
homepage:http://www.f-lohmueller.de