Home
- POV-Ray Tutorial
- POV-Ray Beispiele
Inhaltsübersicht
- Geometrie
- Architektur
- Technik
- Leiter
- Masten
- Geländer
- Brücke
- Röhren
- Rohrabzweigung
- Rohr-Absperrhahn
- Kette
- Drahtspule
- Torpedo
- Cruise Missile
- Rakete
- Rad
- Truck
- Propeller
- Flugzeug
- Kanu
- Gitarrenbody
- 7-Segment Display
- Flachbandkabel
- Kabelbaum
|
|
Kettenglieder und eine Kette
Objekte: sphere, box, cylinder.
Methoden: #declare, union, difference, #while, #if.
Dieses Beispiel zeigt, wie man eine Kette aus Kettengliedern bauen kann.
Es ist möglich dabei alle Abmessungen der Kette variabel zu wählen.
|
|
Der Zusammenbau im Detail:
Schritt 0: Wir definieren vorweg die grundsätzlichen Abmessungen
des Torus, der für die Kettenglieder verwendet wird:
#declare R_min = 0.25;
#declare R_maj = 1.00;
#declare Half_L = 0.25;
// = halber gerader Abschnitt!
#declare Link_Length = 2*(R_maj); |
Schritt 1: Wir definieren eine "box",
welche die rechte Hälfte des Torus umfasst und subtrahieren diese vom Torus:
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 |
|
|
|
|
|
Schritt 2: Wir verschieben die erhaltene Torushälfte um die halbe Länge des geraden Teiles nach links. Dann addieren wir
einen (nur einen!) geraden Kettengliedsabschnitt dazu und definieren das ganze Objekt als "Left_Half".
Schießlich spiegeln wir das neue
Objekt an <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 0.2}
normal {bumps 0.125 scale 0.015}
finish {phong 0.5 reflection 0.2}
} // end of texture
} // end of Chain_Element |
|
|
|
|
Schritt 3: Um eine Kette zu bauen,
müssen wir die einzelnen Kettenglieder um "Link_Length" nach +x verschieben.
Ferner muss jedes zweite Kettenglied um 90 Grad um die x-Achse gedreht werden.
Dies läßt sich alles sehr ökonomisch mit einer While-Schleife erledigen:
|
|
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 |
|
Szenenbeschreibung für eine Kette mit POV-Ray:
"chain.txt" oder
"chain.pov"
|
|