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 "Facetted_Sphere (...)" overview my macro objects macro "Ring_Sphere (...)"

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

Facetted_Egg
Facetted_Egg_Shape

"Facetted_Egg"
= Oeuf facetté

"Facetted_Egg_Shape"
= Forme d'oeuf facetté


   Oeuf facetté
 
syntaxe générale :
object{ Facetted_Egg (Quarter_Meridian_Segments, Equatorial_Segments)
        texture{ ... ... }
      } // end of object ------------------------

   Forme d'oeuf facetté
 
general syntax:
object{ Facetted_Egg_Shape (Quarter_Meridian_Segments, Equatorial_Segments,
                            Lower_Scale, Upper_Scale)
        texture{ ... ... }
      } // end of object ------------------------
Avec :
Quarter_Meridian_Segments = nombre de segments dans un quart de méridien,
Equatorial_Segments = nombre de segments le long de l'équateur et
Lower_Scale = y échelle de la moitié inférieure de la forme,
Upper_Scale = y échelle de la moitié supérieure de la forme.
La hauteur totale de ces formes est à l'échelle 2 unité.

Exemples:
#include "shapes_lo.inc"
object{ Facetted_Egg (6, 12 )
        texture { pigment{color rgb<1,1,1&lgt;}
                  finish {ambient 0.08 diffuse 0.7 phong 0.1}
                }
        scale 1 rotate<0,10,0> translate<0,1.15,0>}
      } // end of object ------------------------------------ 
#include "shapes_lo.inc"
object{ Facetted_Egg_Shape (9, 22, 1.85, 0.80)
        texture { pigment{color rgb<1,1,1&lgt;*1.3}
                  finish {ambient 0.08 diffuse 0.7 phong 0.1}
                }
        scale 1 rotate<0,10,0> translate<0,1.85,0>}
      } // end of object ------------------------------------ 


La macro en détail

Ceci est réalisé par une intersection de prismes avec un oeuf facetté shape 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_Egg_Shape
#macro Facetted_Egg_Shape (Quarter_Segments, Radial_Segments, Lower_Scale, Upper_Scale)
     //Facettierte_Ei_Form (Viertelskreis_Teilung, Radial_Teilung)
#local Facets_Silhouette =
union{
 prism {
   -2 ,2 ,  Quarter_Segments +3
   < -2,-1.00>,
 #local Nr    =  -Quarter_Segments;
 #local EndNr =  0;
 #while (Nr < EndNr+1)
   #local Angle_degrees = Nr* 90/Quarter_Segments;
   #local Angle_radians = radians(Angle_degrees);
   < cos (Angle_radians) , sin (Angle_radians)> ,
 #local Nr = Nr + 1 ;
 #end
   < -2, 0>
 rotate <-90,0,0> scale <1,1,-1> //turns prism in z direction!
 scale <1,Lower_Scale,1>
 } // end of prism object -------------------------------------------------------------

 prism {
  -2 ,2 , Quarter_Segments+4
  < -2, 0>,
  #local Nr    =  0;
  #local EndNr =  Quarter_Segments;
  #while (Nr < EndNr+1)
   #local Angle_degrees = Nr* 90/Quarter_Segments;
   #local Angle_radians = radians(Angle_degrees);
  < cos (Angle_radians) , sin (Angle_radians)> ,
  #local Nr = Nr + 1 ;
  #end
  < -2, 1>,
  < -2, 0>
 rotate <-90,0,0> scale <1,1,-1> //turns prism in z direction!
 scal e<1,Upper_Scale,1>
 } // end of prism object -------------------------------------------------------------
}// end of union

intersection{
 #local Nr = 0;                  // start
 #local EndNr = Radial_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_Egg_Shape (...)

Cet objet oeuf facetté est réalisée avec la même macro avec une échelle inférieure fixe Lower_Scale = 1.15 et une échelle supérieure Upper_Scale = 1.55


// ---------------------------------------------------------------- macro Facetted_Egg
#macro Facetted_Egg(N_Quarter_Segments, N_Radial_Segments)
  object{ Facetted_Egg_Shape(N_Quarter_Segments, N_Radial_Segments, 1.15, 1.55)
          translate < 0, 1.15, 0>
          scale 2/(1.15 + 1.55)
         }
#end // ----------------------------------------------- end of macro Facetted_Egg(...)


macro "Facetted_Sphere (...)" overview my macro objects macro "Ring_Sphere (...)"

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