Section courante

A propos

Section administrative du site

Les matrices

Groupe : Matrice affine

Fonctions matricielles permettant d'initialiser, de transformer et d'effectuer diverses autres opérations sur ces matrices. Elles peuvent être utilisées avec gdTransformAffineCopy et sont également utilisées dans diverses fonctions de transformation dans GD.

Les matrices sont créées à l'aide d'un tableau double à 6 éléments :

  1. matrix[0] == xx
  2. matrix[1] == yx
  3. matrix[2] == xy
  4. matrix[3] == xy
  5. matrix[4] == x0
  6. matrix[5] == y0

où la transformation d'un point donné (x,y) est donnée par :

  1. x_new = xx * x + xy * y + x0;
  2. y_new = yx * x + yy * y + y0;

Les fonctions

Groupe de matrices : matrice affine

Nom Description
gdAffineApplyToPointF Applique une transformation affine à un point (utilisant des coordonnées en virgule flottante gdPointF).
gdAffineInvert Trouve l'inverse d'une transformation affine.
gdAffineFlip Effectue un retournement horizontal ou vertical d'une transformation affine.
gdAffineConcat Concatène (multiplie) deux matrices de transformation affine.
gdAffineIdentity Initialise une matrice identité.
gdAffineScale Initialise une matrice de mise à l'échelle.
gdAffineRotate Initialise une transformation affine de rotation.
gdAffineShearHorizontal Configurer une matrice de cisaillement horizontal || devient \\.
gdAffineShearVertical Initialise une matrice de cisaillement vertical, les colonnes restent inchangées.
gdAffineTranslate Initialise une matrice de translation.
gdAffineRectilinear Détermine si la transformation affine est alignée sur les axes.
gdAffineEqual Détermine si deux transformations affines sont égales.

gdAffineApplyToPointF

int gdAffineApplyToPointF(gdPointFPtr dst, const gdPointFPtr src, const double affine[6]);

Applique une transformation affine à un point (virgule flottante gdPointF).

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer le point résultant.
affine Ce paramètre permet d'indiquer le point source.
flip_horz Ce paramètre permet d'indiquer la matrice affine.

Retour

Valeur Description
Entier GD_TRUE si l'affine est rectiligne ou GD_FALSE

gdAffineInvert

int gdAffineInvert(double dst[6], const double src[6]);

Trouver l'inverse d'une transformation affine.

Toutes les transformations affines non dégénérées sont inversibles. L'application de la matrice inversée restaurera les valeurs d'origine. La multiplication de src par dst (commutatif) renverra l'identité affine (erreur d'arrondi possible).

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer la transformation affine résultante.
src_affine Ce paramètre permet d'indiquer la matrice affine originale.
flip_horz Ce paramètre permet d'indiquer s'il faut ou non retourner horizontalement.
flip_vert Ce paramètre permet d'indiquer s'il faut ou non retourner verticalement.

Voir également

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE en cas d'échec

gdAffineFlip

int gdAffineFlip(double dst[6], const double src[6], const int flip_h, const int flip_v);

Inverser une transformation affine horizontalement ou verticalement.

Inverse la transformation affine, en donnant GD_FALSE pour flip_horz et flip_vert pour cloner la matrice affine. GD_TRUE pour les deux copiera une rotation de 180°.

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer la transformation affine résultante.
src_affine Ce paramètre permet d'indiquer une matrice affine originale.
flip_h Ce paramètre permet d'indiquer s'il faut ou non retourner horizontalement.
flip_v Ce paramètre permet d'indiquer s'il faut ou non retourner verticalement.

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE

gdAffineConcat

int gdAffineConcat(double dst[6], const double m1[6], const double m2[6]);

Concatène (multiplier) deux matrices de transformation affine.

Concatène deux transformations affines ensemble, c'est-à-dire que le résultat sera l'équivalent de faire d'abord la transformation m1 puis m2. Tous les paramètres peuvent être la même matrice (il est possible de l'appeler en toute sécurité en utilisant le même tableau pour les trois paramètres).

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer la transformation affine résultante.
m1 Ce paramètre permet d'indiquer la première matrice affine.
m2 Ce paramètre permet d'indiquer la deuxième matrice affine.

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE

gdAffineIdentity

int gdAffineIdentity(double dst[6]);

Mettre en place la matrice d'identité.

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer la transformation affine résultante.

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE

gdAffineScale

int gdAffineScale(double dst[6], const double scale_x, const double scale_y);

Mettre en place une matrice de mise à l'échelle.

Paramètre

Nom Description
scale_x Ce paramètre permet d'indiquer le facteur d'échelle X.
scale_y Ce paramètre permet d'indiquer le facteur d'échelle Y.

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE

gdAffineRotate

int gdAffineRotate(double dst[6], const double angle);

Configurez une transformation affine de rotation.

Comme l'autre angle dans libGD, dans lequel l'augmentation de y se déplace vers le bas, il s'agit d'une rotation dans le sens inverse des aiguilles d'une montre.

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer la transformation affine résultante.
angle Ce paramètre permet d'indiquer l'angle de rotation en degrés.

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE

gdAffineShearHorizontal

int gdAffineShearHorizontal(double dst[6], const double angle);

Configurer une matrice de cisaillement horizontal || devient \\.

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer la transformation affine résultante.
angle Ce paramètre permet d'indiquer l'angle de cisaillement en degrés.

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE

gdAffineShearVertical

int gdAffineShearVertical(double dst[6], const double angle);

Configurez une matrice de cisaillement vertical, les colonnes ne sont pas touchées.

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer la transformation affine résultante
angle Ce paramètre permet d'indiquer l'angle de cisaillement en degrés.

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE

gdAffineTranslate

int gdAffineTranslate(double dst[6], const double offset_x, const double offset_y);

Mettre en place une matrice de traduction.

Paramètre

Nom Description
dst Ce paramètre permet d'indiquer où entreposer la transformation affine résultante.
offset_x Ce paramètre permet d'indiquer un montant de la translation horizontale.
offset_y Ce paramètre permet d'indiquer le montant de la translation verticale.

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE

gdAffineRectilinear

int gdAffineRectilinear(const double m[6]);

Détermine si la transformation affine est alignée sur l'axe. Une tolérance a été implémentée à l'aide de GD_EPSILON.

Paramètre

Nom Description
m Ce paramètre permet d'indiquer la transformation affine.

Retour

Valeur Description
Entier GD_TRUE si l'affine est rectiligne ou GD_FALSE

gdAffineEqual

int gdAffineEqual(const double m1[6], const double m2[6]);

Détermine si deux transformations affines sont égales. Une tolérance a été implémentée à l'aide de GD_EPSILON.

Paramètre

Nom Description
m1 La première transformation affine
m2 La deuxième transformation affine

Retour

Valeur Description
Entier GD_TRUE en cas de succès ou GD_FALSE


Dernière mise à jour : Mardi, le 8 octobre 2024