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
  - 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
                                               
 
star

È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

 
another star 320x240
La description de la scène
pour POV-Ray :
"star0.txt" ou "star0.pov"

top
© Friedrich A. Lohmüller, 2009
www.f-lohmueller.de