Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmueller
      Objets POV-Ray - Comment faire des objets pour POV-Ray
English English English
Italiano  Italiano
Deutsch 

Page d'Accueil
- POV-Ray Tutorial

  - Exemples POV-Ray
    Table des matières
  - Architecture
  - Geometrie
  - Technique
    - Échelle
    - Pylônes
    - Garde-fou, Rambarde
    - Pont
    - Tuyaux
    - Bifurcation de Tuyau
    - Robinet d'Arrêt
    - Chaîne
    - Bobine de fil
    - Torpedo
    - Cruise Missile
    - Missile
    - Roue
    - Camion
    - Hélice
    - Avion
    - Canoë
    - Guitare
    - Afficheur 7 segments
    - Câble plat - Nappe plat
    - Harnais de câbles
                                       
Wheel

Roue avec des Rayons
- sans et avec une boucle "#while" -

Un exemple pour utilisation d'une boucle "#while" ("#while loop")
Objets:  "torus", "cylinder", "sphere".
Méthodes: "union", "#declare", "#while loop".

a) Sans une boucle "#while"

 ...
#declare Number_of_spokes = 12;
#declare W = 360/Number_of_spokes;
//--------------------------------- wheel - roue 
union{
torus{0.9,0.20 rotate<90,0,0>
         texture{Rim_tex}} // rim
torus{1.0,0.25 rotate<90,0,0>
         texture{Tiretex}} // tire
 cylinder{<0,0,-0.10>,<0,0, 0.10>,0.20
         texture{Hub_tex}} // hub
 cylinder{<0,0,-0.12>,<0,0, 0.12>,0.15
         texture{Hub_tex}} // hub
//------------ without #while loop: --------<<1 
union{
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 0*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 1*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 2*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 3*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 4*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 5*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 6*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 7*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 8*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0, 9*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0,10*W>}
 cylinder{<0,0,0>,<1,0,0>,0.05 rotate<0,0,11*W>}
 texture{Spoke_tex}
 }
//----------------------------------------- <<2 
translate<0,1.25,0>
rotate<0,0,0>} // end of union
//----------------------------------------- end 
Example while loop

Au lieu de beaucoup des déclarations séparées avec seulement changements petits, nous pouvons appliquer dans ces cases la technologie des boucles "#while". Cette technologie ne peut pas seulement réduire le travaíl d'écrire une fichier de scène in these cases the loop technologie. This technology does not only reduce the work of writing (sûrement : avec "cut and paste" cela n'est pas un problème sérieux !), mais permet à nous aussi de changer les valeurs pour le nombre des éléments et le valeur de pas très facile.

b) Avec une boucle "#while"

 ...
//or from <<1  until <<2
 // --- with while loop ----------- >>1 
#declare Nr = 0;
#declare EndNr = Number_of_spokes;

#while ( Nr < EndNr )
  cylinder {<-1,0,0>,<1,0,0>, 0.05
            rotate<0,0,360/EndNr*Nr>
            texture{Spoke_tex}}
  #declare Nr = Nr +1;
#end // --------------------------- >>2 
...
Example while loop
Cliquez ici pour une description complete
de la scène pour POV-Ray :
"wheel_1.txt" ou "wheel_1.pov"

POV-Ray utilise seulement la boucles "#while".
Si la section entre le mot "#while" et le correspondant mot "#end" est exécutée ou no, cela est décidée selon les conditions dans les parenthèses derrière le mot "#while". Cela est décidée avant que les instructions de la section sont exécutées.
Cette manière de boucle est appelée "pre-checked loop"   - bon connu avec beaucoup des langages de programmation. Une autre instruction, aussi connu "repeat ... until" pour un boucle appelée "post-checked loop", n'existe pas dans POV-Ray jusqu'à maintenant. Mais cela n'est pas un problème très grave parce que il est possible de transformer chaque boucle de cette manière dans un boucle de l'autre façon seulement avec transformer les conditions de boucle.

Avec les boucles "#while" aussi le placement de    
beaucoup des éléments n'est pas un problème :

Example while loop
La description de la scène pour POV-Ray :
"wheel_2.txt" ou "wheel_2.pov"
top
© Friedrich A. Lohmüller, 2009
www.f-lohmueller.de