Hallo, wenn ich den Ursprung [0 0 0] eines Koordinatensystems in ein anderes Koordinatensystem transformieren möchte, dann kommt ja immer wieder [0 0 0], also der Ursprung raus, egal mit welcher Transformationsmatrix man ihn multipliziert. Das kann doch eigentlich nicht sein, oder?
Gor Na Vid schrieb: > Hallo, > > wenn ich den Ursprung [0 0 0] eines Koordinatensystems in ein anderes > Koordinatensystem transformieren möchte, dann kommt ja immer wieder [0 0 > 0], also der Ursprung raus, egal mit welcher Transformationsmatrix man > ihn multipliziert. > Das kann doch eigentlich nicht sein, oder? Wenn dein Programm korrekt ist UND die Matrix keine Einheitsmatrix ist, dann kann das nicht sein. Du hast also 2 Voraussetzungen die erfüllt sein müssen. Da du eine Einheitsmatrix wohl erkennen würdest, wenn du sie siehst, wird dann wohl Voraussetzung 1 nicht erfüllt sein: Dein Programm ist nicht korrekt
Mit einer 3×3-Matrix ist für dreidimensionale Koordinaten keine Translation darstellbar. Mit 4×4-Matrizen gehen auch Translationen und noch viel mehr: http://de.wikipedia.org/wiki/Homogene_Koordinaten
Hallo, eine Translation (Verschiebung) ist ja auch keine affine Abbildung... In der 3D-Graphik verwendet man daher homogene Koordinaten, X, Y, Z und zusätzlich noch W, das immer 1 ist. Das ist jetzt eine dreidimensionale Hyperebene im 4-dimensionalen Raum, wenn man die dreht (die Hyperebene geht nicht durch den Nullpunkt!) kann man eine Verschiebung innerhalb der Hyperebene rerreichen. Konkrete Matrix: |a00, a01, a02, v0| |a10, a11, a12, v1| |a20, a21, a22, v3| | 0, 0, 0, 1| Die Untermatrix a00-a22 entspricht der normalen Matrix, z.B. für Drehungen, v0, v1, und v2 sind dann Null. Ist a00-a22 Null, findet eine Verschiebung um (v0, v1, v2) für (x,y,z,w) statt, w muß vorher 1 sein und ist hinterher immer noch 1. Führt man mehrere Operationen aus (Verschiebungen, Drehungen, Streckungen usw.), werden die entsprechenden 4*4 Matrizen multipliziert, das Produkt auf den Vektor (x,y,z,w) führt dann alle Operationen auf einmal aus, w bleibt trotzdem immer 1. Gruß Andy_W
Ah, ich verstehe. Danke für eure netten und ausführlichen Antworten!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.