Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmueller
      Objets POV-Ray - Comment faire des objets pour POV-Ray
English English English
Italiano  Italiano
Deutsch 

Page d'Accueil
- POV-Ray Tutorial

  - Exemples POV-Ray
    Table des matières
  - Architecture
  - Geometrie
  - Technique
    - Échelle
    - Pylônes
    - Garde-fou, Rambarde
    - Pont
    - Tuyaux
    - Bifurcation de Tuyau
    - Robinet d'Arrêt
    - Chaîne
    - Bobine de fil
    - Torpedo
    - Cruise Missile
    - Missile
    - Roue
    - Camion
    - Hélice
    - Avion
    - Canoë
    - Guitare
    - Afficheur 7 segments
    - Câble plat - Nappe plat
    - Harnais de câbles
                                       
 
Pylon

Pylônes

Objets: box, cylinder, sphere.
Méthodes: #declare, #local, union, #macro, #while.

Le Montage de Pylône :
 
Un segment d'un pylône est composé d'un châssis horizontal de tubes ("cylinder") avec de sphères ("sphere") dans les angles et aussi de quelques tubes verticals et diagonals. Pour un segment détaché n'a pas des tubes au bout supérieur, ici le segment prochain suit.

//--------------------- 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
//--------------------- horizontal frame
#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  //---------------------------
//-------------------- vertical elements:
#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

Ce segment du réseau du pylône on peut utiliser plus flexiblement si il est défini comme une "macro".
Avec cette macro on peut choisir toutes les dimensions librement. Un exemple vous pouvez trouver dans le source code de la scène suivante. Les parties changées sont renforcées dans le texte suivant.
Le pylône est construit avec des segments identiques avec un boucle while :

//------------------- Textures ----------
#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}}
//---------------------------------------
// Base:
box{ <-1,0,-1>,< 1,0.05,1>
      scale <W+0.1,1,W+0.1>
      texture{Texture2}}
//-------- Construction with while loop
// 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 
Pylon  640x480

Le fichier de la scène pour POV-Ray :
g_mastm1.pov ou
g_mastm1.txt

top

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