Descrizioni ed esempi per POV-Ray di Friedrich A. Lohmüller,
in parti tradotto di Paolo Taraboi

Cicli in POV-Ray     
English English English
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial

  Cicli con POV-Ray
  1. For e While
       Comparazione
  2. Trasformazioni
       lineari
  3. Trasformazioni
       circolari
  4. Moebius etc.
>5. Viti e spirali
  6. Spirali
       intrecciate
  7. Chiocciole
       e ammoniti
  8. Spirali sferiche 1
  9. Spirali sferiche 2
 10. Spirali Fibonacci
                                         
 
 
  - Download

Cicli con Viti e Spirali

La sovrapposizione della rotazione di una sfera e la sua traslazione lungo l'asse di rotazione generano una vite formata dagli elementi:

#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;//NumberOFrevolution
#declare N_p_rev=50;//ElementsPERrev.
#declare H_p_rev=0.8;//Heightdiff./rev.
#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 -----
Scena per POV-Ray: povloop7.pov
o: povloop7.txt

Se aumentiamo il numero di elementi di ogni rivoluzione i singoli elementi si trasformano in un nuovo oggetto. Questa è una buona tecnica ma ha una falla: il numero degli elementi e quindi la quantità di RAM e di tempo necessari aumentoano rapidamente:
In questo esempio ci sono 2500 cilindri per rivoluzione!

//------------------------------------
#declare N_p_rev=2500;
//------------------------------------
Scena per POV-Ray: povloop8.pov
o: povloop8.txt

Se aggiungiamo ad una rotazione a livello zero una traslazione radiale costante otteniamo un oggetto spiraliforme:

#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 -----
Scena per POV-Ray: povloop9.pov
o: povloop9.txt

top

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