projective_trans_hom_point_3dT_projective_trans_hom_point_3dProjectiveTransHomPoint3dProjectiveTransHomPoint3d — Projiziert einen homogenen 3D-Punkt mittels einer projektiven
Transformationsmatrix.
double HHomMat3D.ProjectiveTransHomPoint3d(double px, double py, double pz, double pw, out double qy, out double qz, out double qw)
Beschreibung
projective_trans_hom_point_3dprojective_trans_hom_point_3dProjectiveTransHomPoint3dProjectiveTransHomPoint3dProjectiveTransHomPoint3d wendet die homogene projektive
Transformationsmatrix HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D auf alle homogenen
Eingabepunkte (PxPxPxPxpx,PyPyPyPypy,PzPzPzPzpz,PwPwPwPwpw) an
und liefert ein Tupel von homogenen Ergebnispunkten
(QxQxQxQxqx,QyQyQyQyqy,QzQzQzQzqz,QwQwQwQwqw) zurück. Die
Transformation wird durch eine homogene Transformationsmatrix
beschrieben, die in HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D übergeben wird. Dies
entspricht der folgenden Gleichung (Ein- und Ausgabepunkte als
homogene Vektoren dargestellt):
Um die homogenen Koordinaten in euklidische Koordinaten zu
transformieren, muss durch QwQwQwQwqw geteilt werden:
Dies kann direkt mit projective_trans_point_3dprojective_trans_point_3dProjectiveTransPoint3dProjectiveTransPoint3dProjectiveTransPoint3d erreicht
werden. Daher ist projective_trans_hom_point_3dprojective_trans_hom_point_3dProjectiveTransHomPoint3dProjectiveTransHomPoint3dProjectiveTransHomPoint3d
hauptsächlich in Situationen nützlich, in denen die Ergebinspunkte
in der unendlich fernen Ebene liegen können, d.h. QwQwQwQwqw = 0
besitzen können, und somit die obige Division nicht ausgeführt
werden kann.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).