Seite 1 von 1

Matrix Skalierung

Verfasst: 16.05.2009, 18:48
von Zudomon
Hallo!
Kann mir jemand sagen, wie man aus einer Matrix die X, Y und Z-Skalierung auslesen kann?

Gruß
Zudo

Re: Matrix Skalierung

Verfasst: 16.05.2009, 23:23
von Schrompf
Länge der Basisvektoren nehmen. Wie die liegen, hängt vom Speicherlayout Deiner Matrizen ab. Im Falle einer D3DXMatrix sieht die Matrix so aus:

Code: Alles auswählen

Ux Uy Uz 0
Vx Vy Vz 0
Wx Wy Wz 0
Tx Ty Tz 1
U, V und W sind die drei Basisvektoren des Raumes, T der Translationsanteil. Extrahiere auf die Art die drei Basisvektoren und berechne deren Länge. Das sind die Skalierungen in den drei Achsen, die Du suchst.

Re: Matrix Skalierung

Verfasst: 19.05.2009, 09:10
von Lord Delvin
Bist du sicher, dass du nicht eigentlich die Eigenwerte/vektoren haben willst? Also quasi die Skalierung, die tatsächlich stattfindet?

Edit: Scherungen sind afaik flächenerhaltend, hätten aber mit der Betragsmethode einen Streckungsanteil.

Re: Matrix Skalierung

Verfasst: 19.05.2009, 13:04
von Zudomon
Was ich brauche ist die endgültige Länge der Skalierung, da ich immer von einer Einheitsmatrix ausgehe sollte das sogar in meinem Fall beides das gleiche sein. Ich denke, Schrompfs Methode wird klappen, kam nur noch nicht dazu, das zu probieren, werd ich aber noch! :)