Aufgabe
Mit Matrixmultiplikationen ist es möglich, beliebige Punkte und geometrische Figuren in einem Punkt(xy)-Diagramm um die 3 Raumachsen X,Y,Z zu drehen und damit ein dreidimensionales Diagramm zu simulieren.
Autor: Klaus Kühnlein
DOWNLOAD (13 KB)
Lösung
Im Bereich A2:C9 stehen die Ausgangskoordinaten.
Die Z-Koordinaten sind natürlich zunächst nicht sichtbar.
Das Beispiel zeigt die Koordinaten der 8 Ecken eines Würfels
Im Bereich I1:K17 stehen 3 3x3-Matrizen. Jede ist für die Drehung um
eine Achse zuständig. Über jeder Matrix steht in Spalte I die Gradzahl von 0-360,
die z.B. mit einem Schiebregler verändert werden kann (I2,I8,I14).
Die Formeln, die in den Zellen der drei Matrizen stehen, werden rechts in den Spalten M:O gezeigt.
Diese drei Matrizen werden in E15:G17 mit
{=MMULT(MMULT(I3:K5;I9:K11);I15:K17)}
zur Gesamt-Matrix gemacht
Selektiere E2:G2 und schreibe
{=MMULT(A2:C2;E15:G17)}
als Arrayformel.
Kopiere dies bis E9
Erstelle ein Punkt(xy)-Diagramm mit den X-werten aus E2:E9 und
den y-Werten aus F2:F9
animierte Beispiele:
DOWNLOAD(50 KB)
DOWNLOAD 3D-Feder(50 KB)
Erläuterung
Man muß wissen, daß die Drehungen um die einzelnen Achsen hierarchisch erfolgt.
Die Gesamtmatrix lautet
=MMMULT(MMULT(X-Matrix;Y-Matrix);Z-Matrix)
die Hierarchie geht von links nach rechts. Es wird also erst um die X-Achse
gedreht, dann um die Y-Achse und dann um die Z-Achse.
3d-Transformationen werden in der modernen Computer-Grafik wegen der
enormen Geschwindigkeits-Steigerung ausschliesslich mit
Matrix-Multiplikation durchgeführt. Dieses Thema ist etwas theoretisch und
Du liest am besten in der einschlägigen Mathematik-Literatur drüber nach.