Wir modifizieren den Raum

klingt aufregend - ist es aber nicht. Und außerdem: wir haben es schon getan.

Wir haben ja schon die Befehle ADDX, ADDY, und ADDZ kennen gelernt. Nun können wir das Koordinatensystem nicht nur verschieben, sondern auch drehen und skalieren. Das Drehen des Koordinatensystem werden wir oft benötigen, die Skalierung eher selten.

Aber genug der vielen Worte, sehen wir's uns mit einem Beispiel an. Als Grundlage dient eines unserer ersten  Scripts:

BLOCK 1,1,1
ADDX 2
BLOCK 1,1,1

das ja folgendes ergeben hat:

nun wollen wir aber den 2. Block gedreht darstellen. Wie schon erwähnt, gibt es Befehle um das Koordinatensystem zu drehen. (GDL-Handbuch S.24)

Die Befehle lauten ROTX, ROTY und ROTZ jeweils gefolgt vom Winkel.

Wir drehen den 2. Block um die z-Achse um 45°. Dazu fügen wir die blaue Zeile in unser Script ein:

BLOCK 1,1,1
ADDX 2
ROTZ 45
BLOCK 1,1,1

und erhalte folgendes Ergebnis im 3D-Fenster:

Wenn wir ein Minus vor den Winkel schreiben also:

BLOCK 1,1,1
ADDX 2
ROTZ -45
BLOCK 1,1,1

dann drehen wir das Koordinatensystem in die andere Richtung:

ROTX und ROTY funktionieren analog dazu!

BLOCK 1,1,1
ADDX 2
ROTX 45
BLOCK 1,1,1

ergibt zB:

Das Löschen der Transformationen

Ein sehr wichtiger Befehl im Zusammenhang mit Transformationen im Raum ist DEL (GDL-Handbuch S.27) Bis jetzt machten wir unsere Transformationen ja einfach Rückgängig, indem wir die Schritte wieder in die andere Richtung gingen. Wir schrieben z.B.:

BLOCK 1,1,1
ADDX 2
BLOCK 1,1,1
ADDX -2

um folgendes zu erhalten:

Dasselbe Ergebnis erhalten wir, indem wir DEL gefolgt von der Anzahl der zu löschenden Transformationen verwenden.

in unserem Beispiel:

BLOCK 1,1,1
ADDX 2
BLOCK 1,1,1
DEL 1

wir schreiben DEL 1, weil wir genau eine Transformation (nämlich ADDX 2) rückgängig (oder löschen - deshalb auch del) machen wollen.

Wenn wir in unserem vorigen Beispiel:

BLOCK 1,1,1
ADDX 2
ROTX 45
BLOCK 1,1,1

wieder zum Ausgangspunkt zurück wollen müssten wir entweder:

BLOCK 1,1,1
ADDX 2
ROTX 45
BLOCK 1,1,1
ROTX -45
ADDZ -2

schreiben, oder mit DEL 2 einfach 2 Transformationen löschen:

BLOCK 1,1,1
ADDX 2
ROTX 45
BLOCK 1,1,1
DEL 2

In beiden Fällen kommen wir zurück zum Ausgangspunkt. DEL ist also ein sehr praktischer Befehl, da er unabhängig von der Transformation arbeitet. Das soll heißen, dem DEL-Befehl ist es egal ob wir ADDX 2 oder ADDX 15 schreiben, er löscht ihn einfach. Wenn wir jeden Schritt händisch zurückgehen, müssen wir nach ADDX 2 wieder ADDX -2 schreiben und nach ADDX 15 aber ADDX -15.

Und dann gibt's noch einen Spezialbefehl für DEL:

DEL TOP

setzt unser lokales Koordinatensystem wieder zurück auf das globale Koordinatensystem.

Das skalieren mit dem MUL-Befehl

wie schon anfangs erwähnt, können wir unser Koordinatensystem auch skalieren. Die zugehörigen Befehle lauten MULX, MULY, MULZ.

so ergibt

BLOCK 1,1,1
ADDX 2
MULX 2
BLOCK 1,1,1

folgendes Ergebnis:

Das Koordinatensystem wurde um den Faktor 2 gestreckt (Man beachte den x-Vektor des lokalen Koordinatensystems). Brauchbar ist das skalieren des Koordinatensystem zB bei Befehl SPHERE:

aus

SPHERE 1

was so aussieht:

wird durch

MULZ 2
SPHERE 1

folgendes:

Auch der MUL-Befehl lässt sich durch den DEL-Befehl rückgängig machen.

 

Wie einige im GDL-Handbuch wahrscheinlich schon bemerkt haben, gibt es neben den Befehl ADDX, ADDY und ADDZ auch den Befehl ADD, gefolgt von 3 Parametern für x, y und z. Mit diesem Befehl können wir 3 Transformationen mit einem Befehl machen.
für den DEL-Befehl gelten diese 3 Transformationen aber nur als 1.
Analog dazu gibt es auch ROT x, y, z und MUL x, y, z

 

Und jetzt bauen wir noch tollere Bäume.