vers l'index général de l'aide / vers l'index des directives

boucles (#while - #end)

objectif

Répéter automatiquement une instruction un certain nombre de fois, tant qu'une condition particulière est vraie.

compatibilité

POV-Ray 3.0 +sup.

syntaxe

#while (Condition)
 ...
#end
 

while signifie "tant que". Tant que la Condition est vraie (égale à 1, yes, on,...), les instructions situées entre #while et #end sont exécutées inlassablement. Dès que la Condition est fausse, POV-Ray "sort" de la boucle, et embraye sur les instructions situées après #end.

exemples

la boucle simple

  #declare I=0;
  #while (I < 10)  //la boucle tournera tant que I sera plus petit que 10
   sphere {<I*2,0,0>,1 pigment {Red}} //la sphère se répète le long de l'axe x, 
                                            //en utilisant I pour varier sa position
   #declare I=I+1;    //on incrémente I à chaque tour de boucle
  #end

Une variante classique dans la façon d'incrémenter :

  #declare I=0;
  #while (I < 1)  
   sphere {<I*2,0,0>,1 pigment {Red}} 
   #declare I=I+0.2;    //l'incrémentation est désormais décimale, cela permet
                        //d'ajuster plus facilement des problèmes d'intervalles
  #end

la boucle double

Pour disposer du carrelage, par exemple. Notez comment la boucle "intérieure" est initialisée, c'est une source d'erreurs fréquente.

#declare I=0;
#while (I < 20)
 #declare J=0;
 #while (J < 20)
   sphere {<I*2,0,J*1.5>,1 pigment {Red}}
 #declare J=J+1;
 #end
#declare I=I+1;
#end

Rédacteur: Fabien Mosen