Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
    Über Variable in POV-Ray -
English English English

Home
- POV-Ray Tutorial

  - POV-Ray Details

  - Über Variable
  > Vordefinierte Variable
      #declare, #local
      Ausdrücke

  - Ein kurzes
    Include File Tutorial

                                                 

Vordefinierte Variable in POV-Ray

In der Szenenbeschreibungssprache (SDL) von POV-Ray sind einige Variable fest eingebaut und daher gebrauchsfertig - aber sie können nicht mittels #declare oder #local neu-deklariert werden.

Vordefinierte Variable
mit festen Werten
Vordefinierte Variable
ohne feste Werte
pi = 3.1415926535897932384626
true = 1
yes = 1
on = 1
false = 0
no = 0
off = 0
u = <1,0>
v = <0,1>
o = <0,0,0>
x = <1,0,0>
y = <0,1,0>
z = <0,0,1>
t = <0,0,0,1>
Zum Gebrauch in Animationen:
clock        // gegnwärtiger 'clock'-Wert in Animationen (0..1)
clock_delta     // clock step between frames
initial_clock   // start clock value (+KIn.n)
final_clock     // end clock value (+KFn.n)
initial_frame   // start frame number (+KFIn.n)
final_frame     // end frame number (+KFFn.n)
frame_number    // current frame number
clock_on        // 1(true) if animation
For use of controlling the aspect ration of the camera:
image_width     // width of current render
image_height    // height of current render
For compatibility of POV-Ray version:
version         // version (default value is 3.6, or 3.7
                // depending of the POV-Ray version you use.
                // Can be changed with #version)

Um jegliche Kollision vordefinierten Variablen und reservierten Wörter in POV-Ray
zu vermeiden, ist es dringend empfohlen
, bei durch den Benutzer definierten Variablen
nur Worte zu verwenden, die mit Großbuchstaben beginnen.
In zukünftigen Versionen enthält die obige Liste möglicherweise noch weitere Kleínbuchstaben als reservierte Wörter. Aus diesem Grund und zum Erhalt der Bedeutungsklarheit in einer Szenedatei sollte obiger Rat befolgt werden.

Beispiele:

schlecht / zu vermeiden okay Begründung
#declare x = 2.5;
#declare X = = 2.5;

Kleines 'x' ist vordefiniert als <1,0,0> !
#declare v = <1.5,2,0>;
#declare V = <1.5,2,0>; 

Kleines 'v' ist vordefiniert als <0,1> !
#local x = 0;     // start
#local End = 10;  // end
#while ( x < End )
 sphere{ <0,0,0>,0.5
         pigment{ rgb<1,0,0> }
         translate<x*1.5,0,0>
       }
 #local x = x + 1;  // next
 #end // ------ end of loop
#local I = 0;       // start
#local End_I = 10;  // end
#while ( I < End_I )
 sphere{ <0,0,0>,0.5
         pigment{ rgb<1,0,0> }
         translate< I*1.5,0,0>
       }
#local I = I + 1;  // next I
#end // ------ end of loop

Kleines 'x' ist vordefiniert als <1,0,0> !
Man verwende statt dessen etwas wie 'X, 'I', 'J', 'Ctr', 'Zaehler', ... !
#local i = 0;     // start
#local End = 10;  // end
#while (i < End )
 sphere{ <0,0,0>,0.5
         pigment{ rgb<1,0,0> }
         translate<i*1.5,0,0>
       }
 #local i = i + 1;  // next
 #end // ------ end of loop
#local I = 0;       // start
#local End_I = 10;  // end
#while ( I < End_I )
 sphere{ <0,0,0>,0.5
         pigment{ rgb<1,0,0> }
         translate< I*1.5,0,0>
       }
#local I = I + 1; // next I
#end // ------ end of loop
Kleines 'i' ist kein wirklicher 'Parse Error'!
Es ist nur ein inkonsequenter Gebrauch eines Kleinbuchstabens, der vermieden werden sollte, wenn wir auf der sicheren Seite sein wollen. Denn beginnt man einmal damit, fördert dies das Nachlassen der Aufmerksamkeit darauf, wie Benutzervariable deklariert werden sollten.

top
© Friedrich A. Lohmüller, 2015
www.f-lohmueller.de
 
Visitors:
(since May-1999)
Thanks for your visit!