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
                                       

Verzweigungen mit bedingten Anweisungen

In der Szenenbeschreibungssprache (SDL) von POV-Ray existieren 2 verschiedene Strukturen, die es ermöglichen bedingte Anweisungen in Form von Verzweigungen darzustellen, wie sie aus Programmiersprachen bekannt sind:

Einfach-Verzweigung
#if-Anweisung

(Wenn... dann ... sonst ...)
Mehrfach-Verzweigung
#switch-Anweisung

(Schalter-Verzweigung)
Syntax in POV-Ray:
#if (Bedingung)
 ... Anweisungen1
#else // (optional)
 ... Anweisungen2
#end 
      
Syntax in POV-Ray:
#switch (Schalter-Variable)
#case (Schalter-Wert1)
 ...  Anweisungen
#break
#case (Schalter-Wert2)
 ...  Anweisungen
#break
#range (Startwert, Endwert)
 ...  Anweisungen
#break
#else // (optional)
 ...  Anweisungen
#break
#end // end of #switch
Äquivalende Strukturen in anderen Programmiersprachen:
IF <Bedingung>
THEN
   <Aktionen>
ELSE
   <Alternative Aktionen>
ENDIF
 
SWITCH (EinZeichen) {
  CASE 'a': <AktionFalls"a">;
    BREAK;
  CASE 'x': <AktionFalls"x">;
    BREAK;
  CASE 'y':
  CASE 'z': <AktionFalls"y"und"z">;
    BREAK;
  DEFAULT: <AktionAndernfalls>;
}
JavaScript:
if (Bedingung) {
    (Aktionen) ;
} 
if (Bedingung) { (AktionWenn) ; } else { (AktionSonst) ; }
JavaScript:
switch (Variable) {
  case "1":
    (AktionWenn1);
    break;
  case "2":
    (AktionWenn2);
    break;
  default:
    (AktionSonst);
    break;
}

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:www.f-lohmueller.de
 
Visitors:
(since May-1999)
Thanks for your visit!