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 / rambard
    - Pont
    - Tubes
    - 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
                                       
 
Railing_1

Comment faire un garde-fou,
une rambarde ou une balustrade

Objets:   cylinder, sphere.
Méthodes: #local, #declare, union, #macro, #while loops.
This example shows how to make a railing i.e. for bridges declared as a macro. The vertical supports are distributed in an equidistant way. It is possible to use variable sizes for the dimensions of the railing.

La construction en detail :
 
Step 1: En premier lieu nous définissons une macro avec les variables de base pour les dimensions du garde-fou et une texture ( Pour changer cette texture, on doit définir la avant de l'intégration de la macro !).
#macro Railing_1( R_Len,// railing length in x
                  R_H,  // railing height in y
                  R_D,  // verticals ~distance
                  R_R,  // railing main radius
                  VSD,  // vertical subdivision
                )//-----------------------------
// default texture -----------------------------
#ifndef( Railing_Texture_1 )
#declare Railing_Texture_1 =
  texture { pigment{ color rgb<1,1,1>*0.7}
            normal { bumps 0.25 scale 0.35}
            finish { phong 0.3 }
          } // end of texture
#end // ----------------------------------------
// horizontal subdivision ----------------------
#local NumV = int ( R_Len / R_D);
#local VerticalsDistance = R_Len / NumV;
// equidistant!
//----------------------------------------------
//----------------------------------------------
union{
 // horizontals
 cylinder{ <0,0,0>,<R_Len,0,0>,R_R
           translate<0,R_H    ,0>}
 sphere{<0,0,0>,R_R translate<    0,R_H,0>}
 sphere{<0,0,0>,R_R translate<R_Len,R_H,0>}
 // vertical subdivision
 #if (VSD > 0)
  #local Nr = 0; // start loop
  #while (Nr < VSD )
   cylinder{ <0,0,0>,<R_Len,0,0>, R_R*1/2
             translate<0,Nr*R_H/(VSD),0>}
  #local Nr = Nr + 1;
  #end // end of loop


 #end

 // verticals
 #local Nr = 0;
 #while (Nr <= NumV)
  cylinder{ <0,0,0>,<0,R_H,0>, R_R
          translate<Nr*VerticalsDistance,0,0>}
 #local Nr = Nr +1 ;
 #end // end of loop
 texture{ Railing_Texture_1 }
} // end of union
// ---------------------------------------------
#end // ------------------------ // end of macro
Step 2: Maintenant nous renvoyons cette définition du garde-fou dans un fichier include, après cela nous pouvons utiliser cette macro avec chaque fichier de scène comme un
objet prêt à l'usage nouveau.

Ce fichier on doit souvgarder ou dans la même registre comme le fichier de scène, ou dans le registre des fichiers include de POV-Ray ou dans chaque registre mentionné dans le Library_Path dans le fichier 'povray.ini' come:
Library_Path="C:\Users\MyFiles\MyPovrayFiles\My_include_files"
// POV-Ray 3.7/3.6 include file "Railing_1.inc"
// author: Friedrich A, Lohmueller, Jan-2011
// homepage: www.f-lohmueller.de/
//----------------------------------------------
#ifndef( Railing_1_Inc_Temp)
#declare Railing_1_Inc_Temp = version;
#version 3.7; // 3.6;
//--------------------------///////////////////
// macro 'Railing_1'
 //ADD HERE THE MACRO FROM ABOVE !

// end of macro 'Railing_1'
//--------------------------///////////////////
/* sample:
 //ADD HERE A SAMPLE LIKE THE ONE BELOW !
*/ end sample
//----------------------------------------------
#version Railing_1_Inc_Temp;
#end
//------------------------- end of include file






railing
Le garde-fou avec une subdivision variable.
railing
Le garde-fou avec des textures redéclares.




















railing
La macro 'Railing_1'
du fichier include 'Railing_1.inc'.


Le fichier include pour POV-Ray : "Railing_1.inc"
et le fichier de scène pour POV-Ray : "railing_1_1.pov"
Step 3: Then we call the macro as an object with the according dimensions:

//------------------- optional texture -----------------------------------//
/*
#declare Railing_Texture_1 =
  texture { pigment{ color rgb<1,1,1>*0.7}
            normal { bumps 0.25 scale 0.35}
            finish { phong 0.3 }
          } // end of texture
*/
//------------------------------------------------------------------------//
#include "Railing_1.inc"
//------------------------------------------------------------------------//
object{ Railing_1( 4.00,  // railing length in x // i.e. 5.00,
                   0.90,  // railing height in y // i.e. 1.00,
                   0.80,  // railing vertical ~distance // i.e. 1.00,
                   0.025, // railing main radius   // i.e. 0.025,
                   4, // vertical subdivision  // integer, i.e. 0, 1, 2, ...
                 ) //-----------------------------------------------------//
        scale <1,1,1>*1
        rotate<0,0,0>
        translate<0.00,0.00, 0.00>
      } // end of object 'Railing_1'
//------------------------------------------------------------------------//
 
Objets prêt à l'usage pour POV-Ray
comme fichiers include avec fichiers exemple
on peut trouver sur la page des Objets prêt à l'usage pour POV-Ray
top

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