GdipCreateMatrix3()



Syntaxe
Resultat.i = GdipCreateMatrix3I(@nRect.Rect, @dstplg.Point, @*matrix)
Paramètres
nRect.Rect

[in] Coordonnées du rectangle à transformer.

dstplg.Point

[in] Tableau de 3 éléments Point (nombres flottants) qui définissent les points du parallélogramme que deviendront respectivement les angles supérieur gauche, supérieur droit et inférieur gauche du rectangle après la transformation.

*matrix

[out] *matrix recevra le pointeur sur le nouvel objet Matrix créé.

Description
Cette fonction permet de créer et d'initialiser un objet Matrix et représente une transformation affine.
Cette matrice est basée sur les coordonnées d'une variable de quatre valeurs (
nRect.Rect) et d'un tableau de trois variables de type point (dstplg.Point).

Les coordonnées du rectangle définissent la partie de l'objet qui sera affecté par les transformations de la matrice.

Le tableau de trois variables Point (dstplg.Point) représente les points du parallélogramme que deviendront respectivement les angles supérieur gauche, supérieur droit et inférieur gauche du rectangle après la transformation. L'angle inférieur droit du parallélogramme est défini par les trois premiers angles.

Cette matrice permet de définir les trois transformations suivantes (transformation composite):

La mise à l'échelle (scale)
La rotation (rotate)
La translation (translate)

Selon les valeurs des paramètres, il est possible d'utiliser une, deux ou trois transformations.

Exemple :

Le rectangle est défini comme ceci:

nRect\x = 0
nRect\y = 0
nRect\width = 100
nRect\height = 150

on applique une translation en X de 30 et en Y de 30 sans mise à l'échelle ni rotation.

Le premier point du tableau représente le point de l'angle supérieur gauche, il est décalé de 30 en X et 30 en Y

dstplg(0)\x = 30
stplg(0)\y = 30

Le second point du tableau représente le point de l'angle supérieur droit. Les nouvelles valeurs sont :

dstplg(1)\x = 130    ; nRect\right + 30
stplg(1)\y = 30        ; nRect\top + 30

Le troisième point du tableau représente le point de l'angle inférieur gauche. Les nouvelles valeurs sont :

dstplg(2)\x = 30 ; nRect\left + 30
stplg(2)\y = 180 ; nRect\bottom + 30

Le fichier d'exemple reprend ces valeurs.

Résultat de la fonction
Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
PB - OS

PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium