3D Vector oder 4D Vector?
-
Hi,
ich habe bisher in meinen 3D Programmen IMMER 3D vectoren benutzt, also
float X,Y,Z
jetzt seh ich aber immer öfter ne W variable, also einen 4D Vector?
Wofür ist dieses W da? Welchen wert hat W normalerweise (ich glaub 1 und die anderen 0)?
Was kann man mit diesem W alles feines machen?
Braucht man W überhaupt?
-
google mal nach homogenen Koordinaten.
-
Darauf kann man ziemlich viel erzählen. Wenn man 4D-Vektoren nimmt arbeitet man i.d.R. im projektiven Raum. Du kannst ja mal nach projektive Geometrie googeln. Das ist allerdings schon höhere Mathematik. Die einfachere Vorteile sind:
Wenn der 4D-Vetor latuet (x, y, z, w) (manche schreiben das w auch in die erste Komponente) lautet der entsprechende 3D-Vektor (x/w, y/w, z/w). Wenn Du hier z.B. w = 0 wählst, kannst Du Fernpunkte darstellen. Das wird manchmal so gemacht.
Eine weitere nette Eigenschaft ist, wenn Du eine Drehung(und/oder Skalierung) und eine Verschiebung auf einen Punkt anwenden willst, sind das mit 3D-Vektoren eine Matrizenmultiplikation und eine Addition. Mit 4D-Koordinaten hast Du nur noch eine Matrizenmultiplikation.