Problem mit Koordinatensystemtransformation

Gast #2830178
Lesenswert?

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?
#2830188
Lesenswert?

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
#2830195
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren