Veröffentlicht 8. Oktober 200321 j 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!?[
14. September 200817 j 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...!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.