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!?[
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...!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden