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
  - Architektur
  - Technik
    - Leiter
    - Masten
    - Geländer
    - Brücke
    - Röhren
    - Rohrabzweigung
    - Rohr-Absperrhahn
    - Kette
    - Drahtspule
    - Torpedo
    - Cruise Missile
    - Rakete
    - Rad
    - Truck
    - Propeller
    - Flugzeug
    - Kanu
    - Gitarrenbody
    - 7-Segment Display
    - Flachbandkabel
    - Kabelbaum
                                       
 
Mast

Gittermast

Objekte:    box, cylinder, sphere.
Methoden: #declare, #local, union, #macro, #while.

Der Zusammenbau des Mastes:
 
Ein Segment eines Gittermastens wird aus einen horizontalen Rahmen aus Rohren ("cylinder") mit Kugeln in den Ecken sowie aus den vertikalen Rohren zusammengebaut. Das einzelne Segment besitzt oben keinen Abschlluß, da dort bereits das nächste Segment anschließt.

//--------------------- Dimensionen -------
#declare R1 = 0.050; // main radius
#declare R2 = 0.025; // diagonals radius
#declare W = 1.00-R1;// half width(outline!)
#declare H = 2.00;   // height
//--------------------- horizontaler Rahmen
#macro Square_Q(R1_, W_ )
union{
 cylinder{<-W_,0,0>,<W_,0,0>,R1_
                    translate<0,0,-W_>}
 sphere  {<0,0,0>,R1_
                    translate<W,0,-W_>}
} #end //-----------------

#macro Square (R10, W0)
union{
 object{ Square_Q(R10, W0) rotate<0,0*90,0>}
 object{ Square_Q(R10, W0) rotate<0,1*90,0>}
 object{ Square_Q(R10, W0) rotate<0,2*90,0>}
 object{ Square_Q(R10, W0) rotate<0,3*90,0>}
     } #end  //---------------------------
//-------------------- vertikale Elemente:
#macro V_Element (R10, R20, W0, H0)
union{
 cylinder {<0,0,0>,<0,H0,0>,R10
                   translate<-W0,0,-W0>}
 // diagonal:
 cylinder{<-W0,0,0>,<W0,H0,0>,R20
                 translate<0,0,-W0+R20>}
 cylinder{<W0,0,0>,<-W0,H0,0>,R20
                 translate<0,0,-W0-R20>}
   } #end //-----------------------------

#macro Element_4 (R11, R21, W1, H1)
union{
object{ Square (R11, W1) }
 //vertical:
object{V_Element(R11,R21,W1,H1)
                 rotate<0,0*90,0>}
object{V_Element(R11,R21,W1,H1)
                 rotate<0,1*90,0>}
object{V_Element(R11,R21,W1,H1)
                 rotate<0,2*90,0>}
object{V_Element(R11,R21,W1,H1)
                 rotate<0,3*90,0>}
translate<0,R1,0>} #end  //--------------- 
Gittermast  Rahmen
 
 
Gittermast vertikal
 
 
Gittermast Element

Dieses Gittermasten-Segment läßt sich noch flexíbler verwenden, wenn man es als "macro" definiert. Dadurch lassen sich die Größenverhältnisse beliebiger festlegen. Ein Beispiel finden Sie im Quellentext zu der folgenden Szene - dadurch geänderte Teile der Objektbezeichnungen sind im folgenden fett hervorgehoben.
Im Folgenden wird der Gittermast aus gleichen Segmenten mittels einer While-Schleife zusammengebaut.

//--------------------Texturen ----------
#declare Texture1 =
 texture{
   pigment{ color rgb<1,1,1>}
   finish { diffuse 0.9 phong 1}}
#declare Texture2 =
 texture{
   pigment{ color rgb<1,1,1>*0.7}
   finish { diffuse 0.9 phong 1}}
//---------------------------------------
// Basis:
box{ <-1,0,-1>,< 1,0.05,1>
      scale <W+0.1,1,W+0.1>
      texture{Texture2}}
//-------- Zusammenbau mit While-Schleife
// tower:
#declare Nr = 0;    // start
#declare EndNr = 8; // end

union{
#while (Nr < EndNr)
   object{ Element_4(R1, R2, W, H)
           texture{Texture1}
           translate<0,Nr*H,0>}
 #declare Nr = Nr + 1;  // next Nr
#end // --------------- end of loop
object{ Square (R1, W) texture{Texture1}
        translate<0,Nr*H+R1,0>}
translate<0,0.05,0> }
//----------------------------------- end 
Gittermast  640x480

Zugehörige
Szenenbeschreibung
für POV-Ray
g_mastm1.pov oder
g_mastm1.txt

 
Gebrauchsferige POV-Ray Objekte als
Include-Dateien mit Beispieldateien findet man
auf der POV-Ray-Objects-Seite.
top

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