Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
Über Schleifen mit POV-Ray     
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial

  Schleifen mit POV-Ray
  1. For + While
       Vergleich
>2. Lineare
     Transformationen
  3. Zirkuläre
     Transformationen
  4. Möbius etc.
  5. Schrauben
       & Spiralen
  6. Verdrehte
       Spiralen
  7. Schnecken
       & Ammoniten
  8. Sphärische Spiralen1
  9. Sphärische Spiralen2
 10. Fibonacci Spiralen
                                         
 
 
  - Download

Schleifen und Lineare Transformationen

Demonstration einiger elementarer Anwendungen der While-Schleife in POV-Ray.
Hier werden Schleifen (engl.: loop) zur regelmäßigen Anordung von Objekten verwendet.
Die folgenden Beispiele zeigen einfache und ineinander geschachtelte Schleifen.
Einfache Schleife:
Kugeln werden längs der x-Achse
von X = -5 bis X = +5 plaziert:
#declare Ball =
 sphere{ <0,0,0>,0.5
         texture{ pigment{ color Red }
                  finish { phong 1 }
                }
        } //--------------------------
//------------------------------------
#declare X = -5;  // start
#declare End_X = 5; // end
#while ( X <= End_X )
 object{ Ball translate < X, 0.5, 0> }
#declare X = X + 1; // next
#end //-------------- end of loop ----
Um eine Kollision mit fest vordefinierten Bezeichnern
und in POV-Ray reservierten Wörtern zu vermeiden,
wird dringend empfohlen, als Bezeichner für Variable
und Objekte, welche vom Benutzer definiert werden,
nur Wörter zu verwenden, die mit Großbuchstaben beginnen.

D.h. da x = <1,0,0> ein reserviertes Wört ist,
verwende man statt dessen z.B. "X".


Szenenbeschreibung für POV-Ray: povloop1.pov oder povloop1.txt
Verschachtelte Schleife (nested loop):
Packt man eine vorhandene Schleife, in eine
weitere Schleife, so erhält man
eine von Objekten bedeckte rechteckig Fläche:
#declare Boxy =
box{ <0,0,0>,< 1,1,1> scale 0.5
     texture{ pigment{ color White }
              finish { specular 0.5}}}
//------------------------------------
#declare Dx = 1.00; // distance in x
#declare Dz = 1.00;
#declare NrX = 0;      // startX
#declare EndNrX = 7;   // endX
#while (NrX < EndNrX) // <-- loop X
 #declare NrZ = 0;     // startZ
 #declare EndNrZ = 7;  // endZ
 #while (NrZ < EndNrZ) // <- loop Z
  object{ Boxy
          translate<NrX*Dx, 0, NrZ*Dz>}
 #declare NrZ = NrZ + 1;  // next NrZ
 #end // --------------- end of loop Z
#declare NrX = NrX + 1;// next NrX
#end // ------------- end of loop X



Szenenbeschreibung für POV-Ray: povloop2.pov oder povloop2.txt
Mehrfach verschachtelte Schleife:
Eine vorhandene Doppel-Schleife läßt sich
in eine weitere Schleife einpacken.
Dadurch erhält man einen
von gleichartigen Objekten gebildeten Quader:
#declare Dx = 1.00;
#declare Dy = 1.00;
#declare Dz = 1.00;
//-------------------------------------
#declare NrX = 0;      // startX
#declare EndNrX = 5;   // endX
#while (NrX < EndNrX)
 #declare NrY = 0;     // startY
 #declare EndNrY = 5;  // endY
 #while (NrY < EndNrY)
  #declare NrZ = 0;    // startZ
  #declare EndNrZ = 5; // endZ
  #while (NrZ < EndNrZ)
   object{ Boxy
           translate
            <NrX*Dx,NrY*Dy,NrZ*Dz>
         }
  #declare NrZ = NrZ+1;// next NrZ
  #end // ---------- end of loop Z
 #declare NrY = NrY+1;// next NrY
 #end // ---------- end of loop Y
 #declare NrX = NrX+1;// next NrX
#end // ----------- end of loop X -----



Szenenbeschreibung für POV-Ray: povloop3.pov oder povloop3.txt

Im Dreidimensionalen erscheinen damit unsere Möglichkeiten in Sachen reine Translations-Bewegungen (Parallelverschiebungen) mit Schleifen zunächst erschöpft.


top

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