Home
- POV-Ray Tutorial
Casualità con POV-Ray
- Numeri casuali in Loops
- Quadratico e cubico
- Colori e Scale
> Inclinare e piegare
- Alberi con casualità
- L'include file 'rand.inc'
- height_field riempito
- Fiore casuale
- Insert Menu Add-on
& Download
|
|
Inclinare e piegare per caso
|
Come inclinare e piegare irregolare per caso una serie d'oggetti.
Usiamo una serie di cilindri, che arrangiamo in una linea con un while loop.
|
//------------------------------------
#declare Mast = // un palo
cylinder{ <0,0,0>,<0,2,0>,0.1
texture{
pigment{ color rgb<0.40,0.25,0.15>}
normal { bumps 0.5
scale <0.005,0.25,0.005>}
finish { phong 0.5}
} // end of texture
} // end of cylinder -----------------
#declare NrX = -10; // start
#declare EndNrX = 10; // end
#while (NrX < EndNrX+1)
object{ Mast
translate<0,0,Nr*1.5>
} // end of object
#declare NrX = NrX + 1; //next Nr
#end // ------------ end of loop -----
|
|
|
Perché l'espressione "rand(Random_1)" genera valori casuali
tra 0 e 1, possiamo ottenere con l'espressione
"rand(Random_1) - 0.5" valori tra -0.5 e +0.5.
Per consequenza il termine " 2 * ( rand(Random_1) - 0.5 )"
genera valori tra -1 e 1.
Per ottenere una rotazione intorno a l'asse z per es. di +/-10 gradi maximale dobbiamo moltiplicare
l'espressione precedente con l'ammontare di quest'angolo maximale:
|
//-------------------------------------
#declare NrX = -10; // start
#declare EndNrX = 10; // end
#while (NrX < EndNrX+1)
object{
Mast
rotate<0,0,10*2*(rand(Random_1)-0.5)>
translate<0,0,Nr*1.5>
} // end of object
#declare NrX = NrX + 1; //next Nr
#end // -------------- end of loop ---- |
|
|
Questa scena si può migliorare con facilità, come si vede nell'immagine seguente:
|
|
Cliccare qui per un immagine in resoluzione più alto!
|
top
|
|