projective_trans_point_3dProjectiveTransPoint3dProjectiveTransPoint3dprojective_trans_point_3dT_projective_trans_point_3d
Short description
projective_trans_point_3dProjectiveTransPoint3dProjectiveTransPoint3dprojective_trans_point_3dT_projective_trans_point_3d — Project a 3D point using a projective transformation matrix.
Signature
projective_trans_point_3d( hom_mat3d HomMat3D, number Px, number Py, number Pz, out number Qx, out number Qy, out number Qz )void ProjectiveTransPoint3d( const HTuple& HomMat3D, const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Qx, HTuple* Qy, HTuple* Qz )static void HOperatorSet.ProjectiveTransPoint3d( HTuple homMat3D, HTuple px, HTuple py, HTuple pz, out HTuple qx, out HTuple qy, out HTuple qz )def projective_trans_point_3d( hom_mat_3d: Sequence[float], px: MaybeSequence[Union[float, int]], py: MaybeSequence[Union[float, int]], pz: MaybeSequence[Union[float, int]] ) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def projective_trans_point_3d_s( hom_mat_3d: Sequence[float], px: MaybeSequence[Union[float, int]], py: MaybeSequence[Union[float, int]], pz: MaybeSequence[Union[float, int]] ) -> Tuple[float, float, float]Herror T_projective_trans_point_3d( 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
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_3dProjectiveTransPoint3d applies the homogeneous projective
transformation matrix HomMat3DhomMat3Dhom_mat_3d to all input points
(Pxpxpx,Pypypy,Pzpzpz) and returns an array of output
points (Qxqxqx,Qyqyqy,Qzqzqz). The transformation is
described by the homogeneous transformation matrix given in
HomMat3DhomMat3Dhom_mat_3d. This corresponds to the following equations
(input and output points as homogeneous vectors):
\[\begin{eqnarray*}
\left( \begin{array}{c}
Tx \\
Ty \\
Tz \\
Tw
\end{array} \right) =
\textrm{HomMat3D} \cdot
\left( \begin{array}{c}
\textrm{Px} \\
\textrm{Py} \\
\textrm{Pz} \\
1
\end{array} \right)
\end{eqnarray*}\]
projective_trans_point_3dProjectiveTransPoint3d then transforms the homogeneous
coordinates to Euclidean coordinates by dividing them by \(Tw\):
\[\begin{eqnarray*}
\left( \begin{array}{c}
\textrm{Qx} \\
\textrm{Qy} \\
\textrm{Qz}
\end{array} \right) =
\left( \begin{array}{c}
\frac{Tx}{Tw} \\
\frac{Ty}{Tw} \\
\frac{Tz}{Tw}
\end{array} \right)
\end{eqnarray*}\]
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_3dProjectiveTransHomPoint3d 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
HomMat3DhomMat3Dhom_mat_3d (input_control) hom_mat3d → (real)HTuple (double)HHomMat3D, HTuple (double)Sequence[float]Htuple (double)
Homogeneous projective transformation matrix.
Pxpxpx (input_control) number(-array) → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)MaybeSequence[Union[float, int]]Htuple (double / Hlong)
Input point (x coordinate).
Pypypy (input_control) number(-array) → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)MaybeSequence[Union[float, int]]Htuple (double / Hlong)
Input point (y coordinate).
Pzpzpz (input_control) number(-array) → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)MaybeSequence[Union[float, int]]Htuple (double / Hlong)
Input point (z coordinate).
Qxqxqx (output_control) number(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)
Output point (x coordinate).
Qyqyqy (output_control) number(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)
Output point (y coordinate).
Qzqzqz (output_control) number(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)
Output point (z coordinate).
Combinations with other operators
Combinations
Possible predecessors
vector_to_hom_mat3dVectorToHomMat3d
Alternatives
projective_trans_hom_point_3dProjectiveTransHomPoint3d
Module
Foundation