Descrizioni et esempi per il raytracer POV-Ray di Friedrich A. Lohmüller
English English English
Français français
Deutsch Deutsch

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

Quest'oggetto è definito con una macro nel mio include file "shapes_lo.inc":

Facetted_Sphere

Facetted_Sphere
= Sfera sfaccettaturata


   Sfera sfaccettaturata
 
Sintassi generale:
object{ Facetted_Sphere (Quarter_Meridian_Segments, Equatorial_Segments)
        texture{ ... ... }
      } // end of object ------------------------
Con:
Quarter_Meridian_Segments = il numero di sfaccettature in un quarto del meridiano,
Equatorial_Segments = il numero di sfaccettature lungo l'equatore.
Il raggio della silhouette è in scala di 1 unità.
Esempio:
#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 ------------------------------------ 


Macro nel dettaglio

Quest'oggetto è realizzato con un'intersezione di prismi con una linea di silhouette sferaforme a una fine:

Facetted_Sphere
Facetted_Sphere
Facetted_Sphere - 1 elemento prismatico del'intersezione
Facetted_Sphere (6, 12 ) = intersezione di 12 elementi prismatici

// ---------------------------------------------------- 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(...)

Qui qualche variazione di questa macro:
 
Facetted_Spheres
Variazioni di "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