« Povray/tutorials/Loop » : différence entre les versions
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.
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 ----
|
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 --
|
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 ----
|
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.