Page d'Accueil
- POV-Ray Tutorial
- Exemples POV-Ray
Table des matières
- Geometrie
- Pion
- Cube au grillage
- Octogone
- Œuf - Ovoïde
- Ètoile
- Lentille optique
- Échiquier
- Forme ballon monocol
- Forme de Erlenmeyer
- Deux cylindres fondus
- Tétraèdre régulier
- Triangle de Penrose
- Yin & Yang
- Poissons
- 3 Poissons
- Feuille de Trèfle
- Architecture
- Technique
|
|
Ètoile
La construction de un forme d'ètoile.
Exemple per l'usage de "intersection" et / ou "difference".
Objets: "box", "sphere".
Méthodes: "#declare", "union{...}", "intersection", "difference".
Cliquez ici pour un exemple !
|
La construction pas à pas :
|
Nous commencons avec un "box".
Pour obtenir un longueur nette des rayons nous faisons changer l'échelle au "box" à la racine carrée de 2.
(Maintenant les diagonales de son surface ont un longueur de 2 unités !)
|
box { <-1,-1,-1>,< 1,1,1>
scale <1,1,1>*sqrt(2)
}
|
Puis nous faisons pivoter le "box" sur l'axe z par 45 degrés.
|
box { <-1,-1,-1>,< 1,1,1>
scale <1,1,1>*sqrt(2)
rotate<0,0,45>
}
|
Et alors nous faisons changer l'échelle in y du "box" et
après cela tournons le "box" sur l'axe x avec 45 degrés.
Nous utlisons le commande "#declare" per la conversion
de cet objet dans un objet nouveau que s'appele "Ray_Profile".
|
#declare Ray_Profile =
box { <-1,-1,-1>,< 1,1,1>
scale <1,1,1>*sqrt(2)
rotate<0,0,45>
scale <1,0.36,1>
rotate<45,0,0>
} |
L'objet nouveau est reflété
au plan xy en la direction z avec "scale<1,1,-1>".
Ensuite faisons une intersection de la forme originale et la forme reflétée.
|
intersection{
object{ Ray_Profile }
object{ Ray_Profile scale<1,1,-1>}
} |
Pour être en état de faire aussi des étoiles avec un nombre impair
de rayons nous devons soustraire ( = intersection avec la forme inverse) un "box"
pour défaire-se de la partie gauche de la forme de rayon.
De cette forme nous faisons avec "#declare" un objet nouveau que s'appele "'Ray"..
|
#declare Ray =
intersection{
object{ Ray_Profile }
object{ Ray_Profile scale<1,1,-1>}
box{<-2,-1,-1>,<0,1,1> inverse}
} |
En fin les rayons de un'étoile sont arrangés
par un boucle while autour du axe y.
Pour l'image à droit les rayons sont fait un peu plus mince
avec " scale<1,0,5,0.5> ".
Le résultat - un étoile avec un rayon de 2 unités.
|
union{
#local Nr = 0; // start
#local EndNr = 5; // end
#while (Nr < EndNr)
object{Ray rotate<0,Nr*360/EndNr,0>}
#local Nr = Nr + 1;// next Nr
#end // ------------- end of loop
rotate<0,0,0>
translate<0,0,0>
} // end of union |
|