Thomas
von Siebenthal/13.4.96
(So sieht eine WinWord Datei aus, wenn man Sie
mit dem Microsoft Word Internet Assistant 2.0z als HTML Datei
speichert und dann ca. 10 Minuten lang überarbeitet.)
Mein Zahnrad besteht aus einem grossen, flachen Zylinder, dem
ich 16 mal mit einem kleinen Zylinder einen Zacken
"ausstanze". In IRIT lässt sich dies mit CSG sehr
praktisch erledigen. Dabei habe ich die Auflösung
verschlechtert, um den Eindruck von Zacken zu erreichen.
zahnrad=cylin(vector(0,0,0), vector(0,0,0.1), 1);
resolution=10;
for(x=0.0, 1.0, 15.0,
alpha = 2*PI/16.0*x :
zahnrad=zahnrad-cylin(vector(cos(alpha), sin(alpha), -0.1), vector(0,0,0.3), 0.125)
);
view(list(zahnrad), TRUE);
Die Tasse und auch der Teller bestehen aus einer B-Spline
Kurve, die eine Hälfte der Kontur beschriebt. Mit der Funktion
"surfrev" wir dann der ganze Rotationskörper erstellt.
Der Tasse habe ich dann noch mit der Funktion
"sweepsrf" einen allgemeinen Zylinder als Henkel
angesetzt.
Tasse_Kurve = cbspline(4, list(ctlpt(E3, 0.03, 0.0, 0.0),
ctlpt(E3, 0.03, 0.0, 0.005),
ctlpt(E3, 0.06, 0.0, 0.005),
ctlpt(E3, 0.06, 0.0, 0.09)),
list(KV_OPEN));
Henkel_achse = cbspline(3, list(ctlpt(E3, 0.052, 0.0, 0.03),
ctlpt(E3, 0.07, 0.0, 0.03),
ctlpt(E3, 0.08, 0.0, 0.07),
ctlpt(E3, 0.059, 0.0, 0.07)),
list(KV_OPEN));
Henkel = sweepsrf(circle(vector(0,0,0), 0.005), Henkel_achse, 1);
Tasse = list(Henkel, surfrev(Tasse_Kurve));
color(Tasse, GREEN);
Tasse = Tasse*scale(vector(1.7,1.7,1.7))*trans(vector(0,0,0.2));
Teller_Kurve = cbspline(3, list(ctlpt(E3, 0.0, 0.0, 0.0),
ctlpt(E3, 1.0, 0.0, 0.0),
ctlpt(E3, 1.0, 0.0, 0.1)),
list(KV_OPEN));
Teller = surfrev(Teller_Kurve)*scale(vector(0.25, 0.25, 0.25))*trans(vector(0,0,0.2));
Color(Teller, GREEN);
Gedeck = list(Teller, Tasse*trans(vector(0.3, 0.3, 0)));
view(list(Gedeck), TRUE);
Ähnlich zu BOOGA lassen sich in IRIT auch Teile einer Szene
definieren und wiederverwenden. Beim links abgebildeten
Frühstückstisch habe ich folgende Hierarchien eingesetzt:
Leider ist mein Gipfeli nicht gerade so gekommen, wie es sein
sollte. Die eine Hälfte scheint wirklich beinahe ein Gipfeli zu
sein, doch dann haben die Bezier- und B-Spline Kurven verrückt
gespielt ...
gipfeli_achse = cbspline(4, list(ctlpt(E3,-0.10, 0.00, 0.0),
ctlpt(E3,-0.45, 0.35, 0.0),
ctlpt(E3, 0.00, 0.50, 0.0),
ctlpt(E3, 0.45, 0.35, 0.0),
ctlpt(E3, 0.10, 0.00, 0.0)),
list(KV_OPEN));
gipfeli_schnitt = circle(vector(0,0,0), 0.25);
gipfeli_dicke = cbezier(list(ctlpt(E2, 0.0, 0.0),
ctlpt(E2, 1.0, 0.0),
ctlpt(E2, 1.0, 1.0)));
gipfeli = sweepsrf(gipfeli_schnitt, gipfeli_achse,
gipfeli_dicke);
Alle meine IRIT Dateien und die entsprechenden GIF-Bilder
könnt Ihr unter nachfolgender URL betrachten und kopieren: