« Povray/tutorials/Loop » : différence entre les versions

De TartareFR
Aller à la navigation Aller à la recherche
Page créée avec « == Introduction == Dans ce tutorial, je veux montrer quelques applications élémentaires de la boucle « tant que » [ While loops ] dans POV-Ray. La boucle While est emp... »
 
Ligne 6 : Ligne 6 :
== Boucles simples et imbriquées ==
== Boucles simples et imbriquées ==


{{Povray/tuto|D'abord nous considérons une boucle simple qui place de petites sphères le long de l'axe de <nowiki>x, de x = -5 à x = +5</nowiki> :
{{Povray/tuto|D'abord nous considérons une boucle simple qui place de petites sphères le long de l'axe de <nowiki>x, de x = -5 à x = +5</nowiki>
<syntaxhighlight lang="povray">
<syntaxhighlight lang="povray">
//------------------------------------
//------------------------------------
Ligne 28 : Ligne 28 :
| [[Fichier:PovrayTutoLoop01.png|vignette|Simple boucle<br>[[Media:PovrayTutoLoop01.pov|Fichier POVRay correspondant]]]]
| [[Fichier:PovrayTutoLoop01.png|vignette|Simple boucle<br>[[Media:PovrayTutoLoop01.pov|Fichier POVRay correspondant]]]]
}}
}}
 
{{Povray/tuto|Si nous imbriquons une boucle existante dans une autre boucle, faisant un pas de la valeur <nowiki>z = 0 à z = +5</nowiki>, nous obtenons un champ rectangulaire couvert par des objets identiques
{{Povray/tuto|Si nous imbriquons une boucle existante dans une autre boucle, faisant un pas de la valeur <nowiki>z = 0 à z = +5</nowiki>, nous obtenons un champ rectangulaire couvert par des objets identiques :
 
<syntaxhighlight lang="povray">
<syntaxhighlight lang="povray">
//------------------------------------
//------------------------------------
Ligne 57 : Ligne 55 :
| [[Fichier:PovrayTutoLoop02.png|vignette|Double boucle<br>[[Media:PovrayTutoLoop02.pov|Fichier POVRay correspondant]]]]
| [[Fichier:PovrayTutoLoop02.png|vignette|Double boucle<br>[[Media:PovrayTutoLoop02.pov|Fichier POVRay correspondant]]]]
}}
}}
 
{{Povray/tuto|Il est posibble d'imbriquer une boucle dans une boucle additionnelle imbriquée, faisant un pas de la valeur <nowiki>y = 0 à y = +5</nowiki>. Avec ceci, nous obtenons une boîte constituée par les objets identiquement formés
{{Povray/tuto|Il est posibble d'imbriquer une boucle dans une boucle additionnelle imbriquée, faisant un pas de la valeur <nowiki>y = 0 à y = +5</nowiki>. Avec ceci, nous obtenons une boîte constituée par les objets identiquement formés :
 
<syntaxhighlight lang="povray">
<syntaxhighlight lang="povray">
//------------------------------------
//------------------------------------

Version du 8 septembre 2013 à 11:03

Introduction

Dans ce tutorial, je veux montrer quelques applications élémentaires de la boucle « tant que » [ While loops ] dans POV-Ray. La boucle While est employée pour le placement régulier des objets. Les exemples suivants montrent une boucle simple et des boucles imbriquées.

Fichiers inclus
Tous les fichiers de scène de POV-Ray des échantillons suivants sont téléchargeables. La plupart des fichiers de scène de POV-Ray emploient le fichier d'inclusion pour le système de coordonnées. Ce dernier a besoin d'un fichier de font.

Boucles simples et imbriquées

D'abord nous considérons 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 {ambient 0.15
                        diffuse 0.85
                        phong 1}
               }
        }
#declare NrX = -5;     // start
#declare EndNrX = 5; // end
#while (NrX < EndNrX+1)
 object{Ball translate <NrX,0,0>}

 #declare NrX = NrX + 1;  //next Nr

#end // ----------- fin de boucle ----
Simple boucle
Fichier POVRay correspondant
Si nous imbriquons une boucle existante dans une autre boucle, faisant un pas de la valeur z = 0 à z = +5, 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 {ambient 0.1
                        diffuse 0.9}}}
#declare DistanceX = 1.00;
#declare DistanceZ = 1.00;
#declare NrX = 0;      // startX
#declare EndNrX = 7;   // endX
#while (NrX < EndNrX) // <-- loop X
 #declare NrZ = 0;     // start
 #declare EndNrZ = 7;  // end
 #while (NrZ < EndNrZ) // <- loop Z
 object{Boxy
        translate<NrX*DistanceX, 0,
                  NrZ*DistanceZ>}
  #declare NrZ = NrZ + 1;  // next NrZ
 #end // ------------- fin de boucle Z
 #declare NrX = NrX + 1;// next NrX
#end // ----------- fin de boucle X --
Double boucle
Fichier POVRay correspondant
Il est posibble d'imbriquer une boucle dans une boucle additionnelle imbriquée, faisant un pas de la valeur y = 0 à y = +5. 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 // -------- fin de boucle Z
 #declare NrY = NrY+1;// next NrY
 #end // -------- fin de boucle Y
 #declare NrX = NrX+1;// next NrX
#end // --------- fin de boucle X ----
Triple boucle
Fichier POVRay correspondant


Avec cet échantillon, nos possibilités, considérée comme de pures transformations linéaires avec imbrication de boucles, nous semblons bien avoir parcouru tout notre monde tridimensionnel.