hom_mat2d_to_affine_parT_hom_mat2d_to_affine_parHomMat2dToAffineParHomMat2dToAffinePar (Operator)

Name

hom_mat2d_to_affine_parT_hom_mat2d_to_affine_parHomMat2dToAffineParHomMat2dToAffinePar — Berechnet die affinen Transformationsparameter aus einer homogenen 2D-Transformationsmatrix.

Signatur

hom_mat2d_to_affine_par( : : HomMat2D : Sx, Sy, Phi, Theta, Tx, Ty)

Herror T_hom_mat2d_to_affine_par(const Htuple HomMat2D, Htuple* Sx, Htuple* Sy, Htuple* Phi, Htuple* Theta, Htuple* Tx, Htuple* Ty)

void HomMat2dToAffinePar(const HTuple& HomMat2D, HTuple* Sx, HTuple* Sy, HTuple* Phi, HTuple* Theta, HTuple* Tx, HTuple* Ty)

double HHomMat2D::HomMat2dToAffinePar(double* Sy, double* Phi, double* Theta, double* Tx, double* Ty) const

static void HOperatorSet.HomMat2dToAffinePar(HTuple homMat2D, out HTuple sx, out HTuple sy, out HTuple phi, out HTuple theta, out HTuple tx, out HTuple ty)

double HHomMat2D.HomMat2dToAffinePar(out double sy, out double phi, out double theta, out double tx, out double ty)

Beschreibung

hom_mat2d_to_affine_parhom_mat2d_to_affine_parHomMat2dToAffineParHomMat2dToAffineParHomMat2dToAffinePar berechnet aus einer homogenen 2D-Transformationsmatrix HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D die zugehörigen affinen Transformationsparameter. Die Parameter SxSxSxSxsx und SySySySysy geben an, wie stark die ursprünglichen x- und y-Achsen von der Transformation skaliert werden. Die beiden Skalierungsfaktoren sind immer positiv. Der Winkel ThetaThetaThetaThetatheta beschreibt, ob die transformierten Koordinatenachsen orthogonal sind (ThetaThetaThetaThetatheta = 0) oder ob die y-Achse geschert ist. Falls , enthält die Transformation eine Spiegelung. Der Winkel PhiPhiPhiPhiphi beschreibt die Rotation der x-Achse des transformierten Koordinatensystems gegenüber der x-Achse des ursprünglichen Koordinatensystems. Die Parameter TxTxTxTxtx und TyTyTyTyty beschreiben die Verschiebung der beiden Koordinatensysteme. Die Matrix HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D lässt sich mit folgender Operatorsequenz aus den sechs Transformationsparametern erzeugen:

hom_mat2d_identity (HomMat2DIdentity) hom_mat2d_scale (HomMat2DIdentity, Sx, Sy, 0, 0, HomMat2DScale) hom_mat2d_slant (HomMat2DScale, Theta, 'y', 0, 0, HomMat2DSlant) hom_mat2d_rotate (HomMat2DSlant, Phi, 0, 0, HomMat2DRotate) hom_mat2d_translate (HomMat2DRotate, Tx, Ty, HomMat2D)

Dies entspricht der folgenden Kette von Transformationsmatrizen:

Ausführungsinformationen

Parameter

HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D (input_control)  hom_mat2d HHomMat2D, HTupleHTupleHtuple (real) (double) (double) (double)

Eingabe-Transformationsmatrix.

SxSxSxSxsx (output_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Skalierung in x-Richtung.

SySySySysy (output_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Skalierung in y-Richtung.

PhiPhiPhiPhiphi (output_control)  angle.rad HTupleHTupleHtuple (real) (double) (double) (double)

Rotationswinkel.

ThetaThetaThetaThetatheta (output_control)  angle.rad HTupleHTupleHtuple (real) (double) (double) (double)

Scherungswinkel.

TxTxTxTxtx (output_control)  point.x HTupleHTupleHtuple (real) (double) (double) (double)

Translation in x-Richtung.

TyTyTyTyty (output_control)  point.y HTupleHTupleHtuple (real) (double) (double) (double)

Translation in y-Richtung.

Ergebnis

Falls die Matrix HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D nicht degeneriert ist und eine affine Abbildung darstellt (d.h. keine projektive Abbildung), liefert hom_mat2d_to_affine_parhom_mat2d_to_affine_parHomMat2dToAffineParHomMat2dToAffineParHomMat2dToAffinePar den Wert 2 (H_MSG_TRUE) zurück. Ansonsten wird eine Ausnahmebehandlung durchgeführt.

Vorgänger

vector_to_hom_mat2dvector_to_hom_mat2dVectorToHomMat2dVectorToHomMat2dVectorToHomMat2d, vector_to_rigidvector_to_rigidVectorToRigidVectorToRigidVectorToRigid, vector_to_similarityvector_to_similarityVectorToSimilarityVectorToSimilarityVectorToSimilarity, vector_to_anisovector_to_anisoVectorToAnisoVectorToAnisoVectorToAniso, point_line_to_hom_mat2dpoint_line_to_hom_mat2dPointLineToHomMat2dPointLineToHomMat2dPointLineToHomMat2d

Nachfolger

hom_mat2d_translatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslateHomMat2dTranslate, hom_mat2d_scalehom_mat2d_scaleHomMat2dScaleHomMat2dScaleHomMat2dScale, hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotateHomMat2dRotate, hom_mat2d_slanthom_mat2d_slantHomMat2dSlantHomMat2dSlantHomMat2dSlant

Modul

Foundation