Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
English English English
Italiano Italiano
Français français

macro "Egg_Shape (...)" Übersicht meine Macro-Objekte macro "Facetted_Egg (...)"

Dieses Objekt ist in meiner Include_Datei "shapes_lo.inc" als Makro definiert:

Facetted_Sphere

Facetted_Sphere


   Facettierte Kugel
 
Syntax:
object{ Facetted_Sphere (Quarter_Meridian_Segments, Equatorial_Segments)
        texture{ ... ... }
      } // end of object ------------------------
Mit:
Quarter_Meridian_Segments = Anzahl der Segmente in einem Viertel des Meridians,
Equatorial_Segments = Anzahl der Segmente längs des Äquators.
Der Radius der Umrisslinie ist auf 1 Einheit skaliert.
Beispiel:
#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 ------------------------------------ 


Das Makro im Detail

Dies wird durch eine Schnittmenge von Prismen mit einer kugelförmig facettierten Umrisslinie an einer Kante erzeugt:

Facetted_Sphere
Facetted_Sphere
Facetted_Sphere - 1 Prismen-Element der Schnittmenge
Facetted_Sphere (6, 12 ) = Schnittmenge von 12 Prismen-Elementen

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

Hier einige Variationen dieses Makro-Objekts:
 
Facetted_Spheres
Variationen der "Facetted_Sphere(...)"





macro "Egg_Shape (...)" Übersicht meine Macro-Objekte macro "Facetted_Egg (...)"

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