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
|
|
Le Maglie di Catena e una Catena
Oggetti: sphere, box, cylinder.
Metodi: #declare, union, difference, #while, #if.
Questo esempio voglio mostrare come si può costruire una catena.
È possibile anche usare delle dimensioni variabili per tutto le maglie di catena.
|
|
La Construzione nel dettaglio:
Passo 0: Daprima dichiariamo le dimensioni di base del toro usato per una maglia di catena:
#declare R_min = 0.25;
#declare R_maj = 1.00;
#declare Half_L = 0.25;
// = half straight part!
#declare Link_Length = 2*(R_maj); |
Passo 1: Definiamo un box che contiene la metà sulla destra del toro e
poi dobbiamo sottrarre questo box del toro:
difference{
torus { R_maj, R_min
rotate <90,0,0>
} // end of torus --------------
box{< 0,-R_maj-R_min,-R_min>,
< R_maj+R_min, R_maj+R_min, R_min>
}// end of box
}// end of difference |
|
|
|
|
|
Passo 2: Poi muoviamo il semitoro a destra
con la metà lunghezza della parte retta
della maglia di catena. Quindi aggiungiamo una (solo una!)
de queste parti della maglia.
Doppo tutto questo dichiariamo quest'oggetto chiamato
"Left_Half" e poi dobbiamo appliquare una riflessione di questo elemento a <0,0,0>:
#declare Left_Half =
union{
difference{
torus { R_maj, R_min
rotate <90,0,0>
} // end of torus -------------
box{< 0,-R_maj-R_min,-R_min>,
<R_maj+R_min, R_maj+R_min, R_min>
}// end of box
translate <-Half_L,0,0>
}// end of difference
cylinder {
<-Half_L,0,0>,<Half_L,0,0>, R_min
translate <0,R_maj,0>
} // end of cylinder
}// end of union
//-------------------------------------
#declare Chain_Link =
union{
object{ Left_Half }
object{ Left_Half scale <-1,-1,1>}
texture{
pigment{color rgb<1,1,1>*0.2}
normal {bumps 0.125 scale 0.015}
finish {phong 0.5 reflection 0.2}
} // end of texture
} // end of Chain_Element |
|
|
|
|
Passo 3: Per assemblare una catena dobbiamo muovere
le maglie con una lunghezza dichiarta "Link_Length"
e dobbiamo anche ruotare con 90 gradi intorno asse x ogni seconda maglia.
Tutto questo si può fare con un ciclo while-loop in un modo molto economic:
|
|
union{
#declare Nr = 0; // start
#declare EndNr = 6; // end
#while (Nr< EndNr)
object{ Chain_Link
#if ( int(Nr/2) ! = Nr/2 )
rotate <90,0,0>
#end
translate <Nr*Link_Length,0,0>
}
#declare Nr = Nr + 1; // next Nr
#end // ----------------- end of loop
} // end of union |
|
|
|