Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmüller,
traduit en français par Henri Girard.
English English English
Italiano  Italiano
Deutsch 

macro "Egg_Shape (...)" overview my macro objects macro "Facetted_Egg (...)"

Cette forme est définie comme une "macro" dans mon include file "shapes_lo.inc":

Facetted_Sphere

"Facetted_Sphere"
Sphère facettée


   Sphère facettée
 
syntaxe générale :
object{ Facetted_Sphere (Quarter_Meridian_Segments, Equatorial_Segments)
        texture{ ... ... }
      } // end of object ------------------------
Avec :
Quarter_Meridian_Segments = nombre de segments dans un quart de méridien,
Equatorial_Segments = nombre de segments dans un quart de méridien.
Le rayon externe est à l'échelle 1 unité.
Exemple:
#include "shapes_lo.inc"
object{ Facetted_Sphere (6, 16 )
        texture {pigment{color rgb <1,1,1>}
                 finish {ambient 0.08 diffuse 0.82 phong 0.1}
                }
        scale <1,1,1> rotate <0,0,0>
        translate < 0, 1, 0>
      } // end of object ------------------------------------ 


La macro en détail

Ceci est réalisé par une intersection de prismes avec une sphère facettée externe à un bout :

Facetted_Sphere
Facetted_Sphere
Facetted_Sphere - 1 prisme élément de l'intersection
Facetted_Sphere (6, 12 ) = intersection de 12 prismes éléments

// ---------------------------------------------------- macro Facetted_Sphere
#macro Facetted_Sphere (Quarter_Meridian_Segments, Equatorial_Segments)
     //Facettierte_Kugel (Viertelskreis_Teilung, Equatorial_Teilung)

#local Facets_Silhouette =
 prism {
   -2 ,2 ,
   2*Quarter_Meridian_Segments+4
   < -2,-1.00 >,

   #local Nr    = -Quarter_Meridian_Segments;
   #local EndNr =  Quarter_Meridian_Segments;
   #while (Nr < EndNr+1)
     #local Angle_degrees = Nr* 90/EndNr;
     #local Angle_radians = radians(Angle_degrees);
   < cos(Angle_radians) , sin(Angle_radians)>,

   #local Nr = Nr + 1 ;
   #end
   < -2, 1 >,
   < -2,-1 >

 rotate<-90,0,0> scale<1,1,-1> //turns prism in z direction!
 } // end of prism object ----------------------------------------

intersection{
 #local Nr = 0;                  // start
 #local EndNr = Equatorial_Segments; // end
 #while (Nr < EndNr)

 object{ Facets_Silhouette rotate<0,Nr * 360/EndNr,0>}

 #local Nr = Nr + 1;    // next Nr
 #end // ---------------  end of loop

} // end of intersection

#end // --------------------------- end of macro Facetted_Sphere(...)

voici quelques variations de cette macro :
 
Facetted_Spheres
Quelques variations de "Facetted_Sphere(...)"





macro "Egg_Shape (...)" overview my macro objects macro "Facetted_Egg (...)"

© Friedrich A. Lohmüller, 2010
email email: (legacy email redacted)
homepage:www.f-lohmueller.de