Rotationsmatrix
-
Hey...
Ich muss in Java 3D Koordinaten in 2D Koordinaten umwandeln und habe mir dazu im Net einiges angesehen.
Bei der Rotationsmatrix steige ich jedoch noch nicht so ganz dahinter. Mir ist klar wie es funktioniert aber ich verstehe nicht wieso man nach der Rotation einfach die z-Koordinate vernachlaessigen kann.px = Punkt[i][x]; py = Punkt[i][y]; pz = Punkt[i][z]; // Rotation um x-Achse Punkt[i][y] = py*Math.cos(angle_x)-pz*Math.sin(angle_x); Punkt[i][z] = py*Math.sin(angle_x)+pz*Math.cos(angle_x); py = Punkt[i][y]; pz = Punkt[i][z]; // Rotation um y-Achse Punkt[i][x] = px*Math.cos(angle_y)+pz*Math.sin(angle_y); Punkt[i][z] =-px*Math.sin(angle_y)+pz*Math.cos(angle_y); px = Punkt[i][x]; // Rotation um z-Achse Punkt[i][x] = px*Math.cos(angle_z)-py*Math.sin(angle_z); Punkt[i][y] = py*Math.cos(angle_z)+px*Math.sin(angle_z);
Mir ist bewusst, dass die Reihenfolge der Drehungen entscheidend sind und dass die Drehung um die z-Achse zum Schluss erfolgen muss. Wieso kann ich jetzt jedoch z.B. einen Punkt eines Wuerfels nach der letzten Drehung mit x und y angeben? Die z-Koordinate muss doch auch noch eine Rolle spielen.
Ich hoffe mir kann das mal jemand in einfachen worten erklaeren, wenn jemand sogar noch nen Link haette, waere natuerlich auch gut.
Hier nen Beispiel, wos in nem einfachen Applet benutzt wird...
http://codebase.prayload.org/743029ab98.htmlRgds
Codex
-
Coda@linux.PrayLoad schrieb:
Hey...
Ich muss in Java 3D Koordinaten in 2D Koordinaten umwandeln und habe mir dazu im Net einiges angesehen.
Dazu brauchst du keine rotations-, sondern eine projektionsmatrix. Man kann aber eine rotationsmatrix dafür missbrauchen, indem man z.b. nur die x- und y- komponente verwendet.
in deinem beispiel wird eine allgemeine rotation aus drei rotationen um die koordinatenachsen angegeben. bei solchen rotationen bleibt die komponente parallel zur achse unverändert, deswegen wurde sie weggelassen.
-
Aber ist es denn nicht so, dass die Rotationsmatrix bestandteil der Projektionsmatrix ist und im Grunde nur ein paar Faktoren ausser acht laesst bzw. gleich 1 setzt?
Rgds
Codex