Page d'Accueil
- Tutoriel POV-Ray
Boucles en POV-Ray
1. 'For' et 'While'
Comparaison
>2. Transformations
Linéaires
3. Transformations
Circulaires
4. Moebius etc.
5. Vis, Hélices
et Spirales
6. Spirales
avec Torsion
7. Coquilles
d'Escargot
et Ammonites
8. Spirales sphériques 1
9. Spirales sphériques 2
10. Spirales Fibonacci
- Téléchargement
|
Boucles et Transformations Linéaires.
Quelques applications élémentaires de la boucle « tant que » [ while loop ] dans POV-Ray.
La boucle While est employée pour le placement régulier des objets.
Ici quelques exemples d'une boucle simple et des boucles imbriquées.
|
Boucle simple :
Une boucle simple qui place de petites sphères
le long de l'axe de X, de X = -5 à X = +5 :
#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 //------------ fin de boucle ---- |
|
Pour eviter chaque collision avec des noms
incorporés et des mots réservés de POV-Ray,
il est très recommandé de utiliser seulement des
mots que commencent avec des capitals
( lettres majuscules ! )
pour tous les noms des variables declarés par le utilisateur.
On doit tenir compte que x = <1,0,0> est un mot réservé, on prend au lieu par ex. "X".
|
|
|
Boucle imbriquée :
Si nous imbriquons une boucle dans une autre boucle.
Nous obtenons un champ rectangulaire couvert par
des objets identiques :
#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 |
|
Fichier de scène pour POV-Ray : .pov ou :
.txt
|
Boucle multiples imbriquée :
Il est posibble d'imbriquer une boucle dans une boucle
additionnelle imbriquée. Avec ceci, nous obtenons une
boîte constituée par les objets identiquement formés :
#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 ----- |
|
|
En trois dimensions nos options des mouvements de translation pures
avec imbrication de boucles semblent être épuisées.
|
|