Descrizioni ed esempi per il raytracer POV-Ray di Friedrich A. Lohmüller
Esempi POV-Ray - Come fare oggetti per POV-Ray
English English English
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial

  - Esempi per POV-Ray
    Indice generale
  - Geometria
  - Architettura
  - Tecnica
    - Scala a Pioli
    - Piloni e Tralicci
    - Parapetto
    - Ponte
    - Tubi e Tubature
    - Bifucazione di Tubi
    - Rubinetto di Arresto
    - Catena
    - Bobina di filo
    - Torpedo
    - Cruise Missile
    - Razzo, Missile
    - Ruota
    - Camion
    - Elica
    - Aeroplano
    - Canoa
    - Chitarra
    - Display a 7 Segmenti
    - Cavo piatto
    - Fascio di cavi
                                       
 
Railing_1

Parapetto

Objects: cylinder, sphere.
Methods: #local, #declare, union, #macro, #while loops.
Quest esempio dimostra come si fa un parapetto per es. per ponti. L'oggetto è dichiarato come una macro. I montanti verticali sono distribuito in modo equidistante. Il è possibile di usare missuri variabili per le dimensioni del parapetto.

La Costruczione nel dettaglio:
 
Passo 1: Prima dichiaramo le variabili di base per le dimensioni del parapetto e anche la testura default (Per cambiare questa testura, dobbiamo dichiarare la nouva testura avanti di inserire la macro!).1
#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
Passo 2: Adesso inseriamo la definitione del parapetto in un include file, poi possiamo usare questa macro in ogni altre scene file come un
oggetto pronto per l'uso nuovo.

Questo file si deve memorizzare o nella stessa directory come il file de la scena di POV-Ray, o nel POV-Ray include file directory, o in ogni altro include file directory che è registrato come un Library_Path nel file 'povray.ini' come per es.:
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
Il parapetto con suddivisione variabile.
railing
Il parapetto con testure ridichierate.




















railing
La macro 'Railing_1'
dal include file 'Railing_1.inc'.


Include file per POV-Ray: "Railing_1.inc"
e file de scena per POV-Ray: "railing_1_1.pov"
Passo 3: Chiamiamo la macro come un oggetto con le dimensioni adeguate:

//------------------- 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'
//------------------------------------------------------------------------//
 
Oggetti pronto per l'uso per POV-Ray
come archivi include con archivi esempio
sono su la paggina Oggetti POV-Ray.
top

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