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

Home
- POV-Ray Tutorial

  - POV-Ray Beispiele
    Inhaltsübersicht
  - Geometrie
    - Bauern-Figur
    - Drahtgitter-Würfel
    - Oktagon
    - Eiform
    - Star - Stern
    - Optische Linse
    - Schachbrett
    - Rundkolben-Form

    - Erlenmeyerkolben-Form
    - Zwei-Zylinder-Blob
    - Regulärer Tetraeder
    - Penrose-Dreieck
    - Yin & Yang
    - Fischblase
    - 3fach Fischblase
    - Dreipass
  - Architektur
  - Technik
                                             
 
egg shape

Ei - Eiform

Die Konstruktion einer Eiform.
Zeigt die Verwendung von "intersection" bzw. "difference".
Objekte:   "box", "sphere".
Methoden: "#declare", "union{...}", "intersection", "difference".
Klicken Sie hier für ein Beispiel!

Die Konstruktion:
Das Gemeinsame
(Schnittmenge = intersection) einer Kugel bzw. eines Ellipsoides (jeweils hellgrau) und eines Quaders (dunkelgrau) bildet eine Halbkugel (untere Ei-Hälfte) bzw. ein halbes Ellipsoid (obere Ei-Hälfte). Beide Hälften werden mittels "union" zu einem neuen Körper verbunden.
Dasselbe läßt sich auch mit Differenz-Bildung mit den Spiegelbildern der Quader bezüglich der xz-Ebene erreichen.

Ansicht von vorn (Blick in z-Richtung)

//-----------------------------------------
#declare Ei_Tex =            //  <--1
texture{ pigment{color White}
         normal {bumps 0.4 scale 0.01}
         finish {diffuse 0.9 phong 0.1}
       } // end of texture
//---------------------------//  <--2
#declare Ei_oben =
intersection{
 sphere{<0,0,0>,1 scale<1,1.75,1>}
 box{<-1,0,-1>,<1,1.75,1>}
//Alternativ mit "difference":
// difference{
// sphere{<0,0,0>,1 scale<1,1.75,1>}
// box{<-1,-1.75,-1>,<1,0,1>}
 }//------------------------------------

 #declare Ei_unten =
intersection{
 sphere{<0,0,0>,1 scale<1,1,1>}
 box{<-1,-1,-1>,<1,0,1>}
//Alternativ mit "difference":
//difference{
// sphere{<0,0,0>,1 scale<1,1,1>}
// box{<-1,0,-1>,<1,1,1>}
 }//------------------------------------

 #declare Ei =
union{ object{Ei_oben }
       object{Ei_unten}
       texture{Ei_Tex}
 }//--------------------------// <--3
object{ Ei_oben  translate<-1.1,1.1,0>
        texture{Ei_Tex}}
object{ Ei_unten translate<-1.1,0.9,0>
        texture{Ei_Tex}}
object{ Ei       translate< 1.1,1.0,0>}
//-------------------------------- end

Dies ergibt folgendes Bild:
 
Ei-Form 600x450
Szenenbeschreibung für POV-Ray:
"povegg0.txt" oder "povegg0.pov"

Variation zum Thema:

Ersetzt man die markierten Passagen wie folgt:

//----------------------------//von <--1
#declare Ei_Tex =
 texture{pigment{color rgb<1,0.85,0.0>}
         normal {bumps 0.75 scale 0.1}
         finish {diffuse 0.9 phong 1}}
                              //bis <--2
//----------------------------//ab  <--3
union{
object{ Ei scale 0.4 translate<-1,1,-1>}
object{ Ei scale 0.4 translate< 0,1,-1>}
object{ Ei scale 0.4 translate< 1,1,-1>}
object{ Ei scale 0.4 translate<-1,1, 0>}
object{ Ei scale 0.4 translate< 0,1, 0>}
object{ Ei scale 0.4 translate< 1,1, 0>}
object{ Ei scale 0.4 translate<-1,1, 1>}
object{ Ei scale 0.4 translate< 0,1, 1>}
object{ Ei scale 0.4 translate< 1,1, 1>}
rotate<-40,40,0>
translate<0.3,0.7,-0.1>
}//---------------------------------- end 
so ergibt sich folgendes Bild:
 
Eiform 600x450
top

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