projective_trans_hom_point_3d T_projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d (Operator)
Name
projective_trans_hom_point_3d T_projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d — Projiziert einen homogenen 3D-Punkt mittels einer projektiven
Transformationsmatrix.
Signatur
Herror T_projective_trans_hom_point_3d (const Htuple HomMat3D , const Htuple Px , const Htuple Py , const Htuple Pz , const Htuple Pw , Htuple* Qx , Htuple* Qy , Htuple* Qz , Htuple* Qw )
void ProjectiveTransHomPoint3d (const HTuple& HomMat3D , const HTuple& Px , const HTuple& Py , const HTuple& Pz , const HTuple& Pw , HTuple* Qx , HTuple* Qy , HTuple* Qz , HTuple* Qw )
HTuple HHomMat3D ::ProjectiveTransHomPoint3d (const HTuple& Px , const HTuple& Py , const HTuple& Pz , const HTuple& Pw , HTuple* Qy , HTuple* Qz , HTuple* Qw ) const
double HHomMat3D ::ProjectiveTransHomPoint3d (double Px , double Py , double Pz , double Pw , double* Qy , double* Qz , double* Qw ) const
static void HOperatorSet .ProjectiveTransHomPoint3d (HTuple homMat3D , HTuple px , HTuple py , HTuple pz , HTuple pw , out HTuple qx , out HTuple qy , out HTuple qz , out HTuple qw )
HTuple HHomMat3D .ProjectiveTransHomPoint3d (HTuple px , HTuple py , HTuple pz , HTuple pw , out HTuple qy , out HTuple qz , out HTuple qw )
double HHomMat3D .ProjectiveTransHomPoint3d (double px , double py , double pz , double pw , out double qy , out double qz , out double qw )
def projective_trans_hom_point_3d (hom_mat_3d : Sequence[float], px : MaybeSequence[Union[float, int]], py : MaybeSequence[Union[float, int]], pz : MaybeSequence[Union[float, int]], pw : MaybeSequence[Union[float, int]]) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float]]
def projective_trans_hom_point_3d_s (hom_mat_3d : Sequence[float], px : MaybeSequence[Union[float, int]], py : MaybeSequence[Union[float, int]], pz : MaybeSequence[Union[float, int]], pw : MaybeSequence[Union[float, int]]) -> Tuple[float, float, float, float]
Beschreibung
projective_trans_hom_point_3d projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d wendet die homogene projektive
Transformationsmatrix HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d auf alle homogenen
Eingabepunkte (Px Px Px Px px px ,Py Py Py Py py py ,Pz Pz Pz Pz pz pz ,Pw Pw Pw Pw pw pw ) an
und liefert ein Tupel von homogenen Ergebnispunkten
(Qx Qx Qx Qx qx qx ,Qy Qy Qy Qy qy qy ,Qz Qz Qz Qz qz qz ,Qw Qw Qw Qw qw qw ) zurück. Die
Transformation wird durch eine homogene Transformationsmatrix
beschrieben, die in HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d ü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 Qw Qw Qw Qw qw qw geteilt werden:
Dies kann direkt mit projective_trans_point_3d projective_trans_point_3d ProjectiveTransPoint3d ProjectiveTransPoint3d ProjectiveTransPoint3d projective_trans_point_3d erreicht
werden. Daher ist projective_trans_hom_point_3d projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d
hauptsächlich in Situationen nützlich, in denen die Ergebinspunkte
in der unendlich fernen Ebene liegen können, d.h. Qw Qw Qw Qw qw qw = 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).
Automatisch parallelisiert auf interner Datenebene.
Parameter
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d (input_control) hom_mat3d → HHomMat3D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Homogene projektive Transformationsmatrix.
Px Px Px Px px px (input_control) number(-array) → HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt (x-Koordinate).
Py Py Py Py py py (input_control) number(-array) → HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt (y-Koordinate).
Pz Pz Pz Pz pz pz (input_control) number(-array) → HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt (z-Koordinate).
Pw Pw Pw Pw pw pw (input_control) number(-array) → HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt (w-Koordinate).
Qx Qx Qx Qx qx qx (output_control) number(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt (x-Koordinate).
Qy Qy Qy Qy qy qy (output_control) number(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt (y-Koordinate).
Qz Qz Qz Qz qz qz (output_control) number(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt (z-Koordinate).
Qw Qw Qw Qw qw qw (output_control) number(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt (w-Koordinate).
Vorgänger
vector_to_hom_mat3d vector_to_hom_mat3d VectorToHomMat3d VectorToHomMat3d VectorToHomMat3d vector_to_hom_mat3d
Alternativen
projective_trans_point_3d projective_trans_point_3d ProjectiveTransPoint3d ProjectiveTransPoint3d ProjectiveTransPoint3d projective_trans_point_3d
Modul
Foundation