Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmueller.
Boucles avec POV-Ray     
English English English
Italiano Italiano
Deutsch Deutsch

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".



Fichier de scène pour POV-Ray : povloop1.pov ou : povloop1.txt
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 -----
Fichier de scène pour POV-Ray : povloop3.pov ou : povloop3.txt

En trois dimensions nos options des mouvements de translation pures avec imbrication de boucles semblent être épuisées.


top

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