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 mit Schrauben und Spiralen

Überlagert man der Rotations-Bewegung der Kugel um eine Achse eine Translation parallel zu dieser Achse erhält man eine schraubenföige Anordnung der einzelnen Elemente:

#declare Ball =
sphere{<0,0,0>,0.35 scale <1,1,1>
       texture{
        pigment{ color rgb<1,0.55,0>}
        finish { phong 1}}}
//-------------------------------------
#declare Radius = 3.00;
#declare N_rev = 3;//Anz.d. Umdrehungen
#declare N_p_rev= 50;//Anz.proUmdrehung
#declare H_p_rev=0.8;//Hoehendifferenz
#declare H = H_p_rev/N_p_rev;
//-------------------------------------
#declare Nr =0;              // start
#declare EndNr =N_rev*N_p_rev; // end
#while (Nr < EndNr)
 object{Ball
        translate<Radius,Nr*H,0>
        rotate<0,Nr*360/N_p_rev,0>}
 #declare Nr = Nr + 1; // next Nr
#end // ------------- end of loop -----
Szenenbeschreibung für POV-Ray: povloop7.pov
oder povloop7.txt

Erhöht man die Anzahl der Elemente pro Drehung, so fließen die einzelnen Elemente zu einer neuen Form zusammen. Nachteil dieser Technik: Die Anzahl der Elemente und damit der Speicherbedarf sowie die Rechenzeit erhöhen sich rasch:
hier sind es pro Windung 2500 Kugeln!

//------------------------------------
#declare N_p_rev=2500;
//------------------------------------
Szenenbeschreibung für POV-Ray: povloop8.pov
oder povloop8.txt

Addiert man zu Rotation auf dem Nullniveau eine konstante radiale Translation, so ergibt sich eine Spiralform:

#declare Ball =
sphere  {<0,0,0>,0.45
texture{pigment{color rgb<1,0.6,0>}
         finish { phong 1}}}
//---------------------------------
#declare Radius0  = 0.0;
#declare N_rev    =   4;
#declare N_p_rev  = 500;
#declare D_p_rev  = 1.0;
#declare D = D_p_rev/N_p_rev;
//------------------------------------
#declare Nr = 0;              // start
#declare EndNr = N_rev*N_p_rev; // end
#while (Nr < EndNr)
 object{ Ball
         translate<Radius0+Nr*D,0,0>
         rotate<0,Nr * 360/N_p_rev ,0>}
 #declare Nr = Nr + 1;  // next Nr
#end // --------------- end of loop --
Szenenbeschreibung für POV-Ray: povloop9.pov
oder povloop9.txt

top

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