Kettenglieder und Kette
Objekte: "sphere", "box", "cylinder".
Methoden: "#declare", "union", "difference",
"#while", "#if",.
Dieses Beispeiel 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 grundaä,tzlichen Abmessungen des Torus, der für die Kettenglieder verwednet 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<1,1,1>*0.2}
normal {bumps 0.125 scale 0.015}
finish {ambient 0.15 diffuse 0.85
phong 0.5 reflection 0.2}
} // end of texture
} // end of Chain_Element
|
|