Krain Geschrieben 8. Oktober 2003 Geschrieben 8. Oktober 2003 Hallo Ich habe ein mathematisches Problem: Ich definiere eine Drehung um die X-Achse und dann eine Drehung um die Y-Achse. Danach multipliziere ich die beiden Drehungen. Transform3D rotate = new Transform3D(); Transform3D tmpRotate = new Transform3D(); rotate.rotX(Math.PI/4.0d); tmpRotate.rotY(Math.PI/4.0d); [COLOR=red]rotate.mul(tmpRotate);[/COLOR] ICh hatte erwartet, wenn ich die Multiplikation genau anders rum mache, also: [COLOR=red]tmpRotate.mul(rotate);[/COLOR] würde ich das selbe Ergebnis bekommen! Das ist aber nicht so - kann mir jemand erklären, was da vorgeht? Ich will wissen, was er mathematisch macht!?[ Zitieren
jmax64 Geschrieben 14. September 2008 Geschrieben 14. September 2008 Drehungen und Transformationen werden mathematisch durch Matrizenmultiplikationen erzeugt. Die Reihenfolge einer Matrizenmultiplikation ist NICHT vertauschbar (ausser bei symmetrischen Matrizen, d.h. welche, die sich an der Diagonale spiegeln lassen), kann man an kleinen 2x2 Matrizen selber ausprobieren... ...des weiteren gilt z.B. bei einer 2d Rotation in der x,y-Ebene: ( Drehung um die z-Achse erfolgt mit der Matrix ) +cos (alpha) +sin(alpha) 0 -sin(alpha) +cos(alpha) 0 0 0 1 ...wie man sieht, ist die Matrix nicht symmetrisch...! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.