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
|
|
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
|
|
Il parapetto con suddivisione variabile.
Il parapetto con testure ridichierate.
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.
|