projective_trans_point_3d T_projective_trans_point_3d ProjectiveTransPoint3d ProjectiveTransPoint3d (Operator)
Name
projective_trans_point_3d T_projective_trans_point_3d ProjectiveTransPoint3d ProjectiveTransPoint3d
— Project a 3D point using a projective transformation matrix.
Signature
Herror T_projective_trans_point_3d (const Htuple HomMat3D , const Htuple Px , const Htuple Py , const Htuple Pz , Htuple* Qx , Htuple* Qy , Htuple* Qz )
void ProjectiveTransPoint3d (const HTuple& HomMat3D , const HTuple& Px , const HTuple& Py , const HTuple& Pz , HTuple* Qx , HTuple* Qy , HTuple* Qz )
HTuple HHomMat3D ::ProjectiveTransPoint3d (const HTuple& Px , const HTuple& Py , const HTuple& Pz , HTuple* Qy , HTuple* Qz ) const
double HHomMat3D ::ProjectiveTransPoint3d (double Px , double Py , double Pz , double* Qy , double* Qz ) const
static void HOperatorSet .ProjectiveTransPoint3d (HTuple homMat3D , HTuple px , HTuple py , HTuple pz , out HTuple qx , out HTuple qy , out HTuple qz )
HTuple HHomMat3D .ProjectiveTransPoint3d (HTuple px , HTuple py , HTuple pz , out HTuple qy , out HTuple qz )
double HHomMat3D .ProjectiveTransPoint3d (double px , double py , double pz , out double qy , out double qz )
Description
projective_trans_point_3d projective_trans_point_3d ProjectiveTransPoint3d ProjectiveTransPoint3d ProjectiveTransPoint3d
applies the homogeneous projective
transformation matrix HomMat3D HomMat3D HomMat3D HomMat3D homMat3D
to all input points
(Px Px Px Px px
,Py Py Py Py py
,Pz Pz Pz Pz pz
) and returns an array of output
points (Qx Qx Qx Qx qx
,Qy Qy Qy Qy qy
,Qz Qz Qz Qz qz
). The transformation is
described by the homogeneous transformation matrix given in
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D
. This corresponds to the following equations
(input and output points as homogeneous vectors):
projective_trans_point_3d projective_trans_point_3d ProjectiveTransPoint3d ProjectiveTransPoint3d ProjectiveTransPoint3d
then transforms the homogeneous
coordinates to Euclidean coordinates by dividing them by Tw:
If a point in the plane at infinity (Tw = 0) is created by the
transformation, an error is returned. If this is undesired,
projective_trans_hom_point_3d projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d
can be used.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on internal data level.
Parameters
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D
(input_control) hom_mat3d →
HHomMat3D , HTuple HTuple Htuple (real) (double ) (double ) (double )
Homogeneous projective transformation matrix.
Px Px Px Px px
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (x coordinate).
Py Py Py Py py
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (y coordinate).
Pz Pz Pz Pz pz
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (z coordinate).
Qx Qx Qx Qx qx
(output_control) number(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Output point (x coordinate).
Qy Qy Qy Qy qy
(output_control) number(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Output point (y coordinate).
Qz Qz Qz Qz qz
(output_control) number(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Output point (z coordinate).
Possible Predecessors
vector_to_hom_mat3d vector_to_hom_mat3d VectorToHomMat3d VectorToHomMat3d VectorToHomMat3d
Alternatives
projective_trans_hom_point_3d projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d
Module
Foundation