GdipTranslateTextureTransform()



Syntaxe
Resultat.i = GdipTranslateTextureTransform(*brush, dx.f, dy.f, order.i)
Paramètres
*brush

[in] Pointeur sur un objet TextureBrush

dx.f

[in] Nombre flottant qui spécifie la valeur de translation sur l'axe x.

dy.f

[in] Nombre flottant qui spécifie la valeur de translation sur l'axe y.

order.i

[in] Élément de l'énumération MatrixOrder qui indique l'ordre de la multiplication des matrices. MatrixOrderPrepend indique que la multiplication se fait de gauche à droite et MatrixOrderAppend indique que la multiplication se fait de droite à gauche. La valeur par défaut est MatrixOrderPrepend. Ces valeurs déterminent l'ordre d'application des transformations tel que défini par l'énumération MatrixOrder.

Description

Cette fonction met à jour la matrice de transformation courante de la brush avec le résultat du produit de la matrice courante et d'une matrice de translation dont les valeurs sont contenues dans les paramètres dx.f et dy.f.
En conséquence, la texture subie une translation en fonction des valeurs passées par dx.f et dy.f en suivant l'ordre définit par order.l.

Cette fonction effectue un déplacement des origines de la brush sur le rendu de la brush selon les valeurs spécifiées.

Exemples :
On défini une TextureBrush basée sur une image de 130 x 130 (brush d'origine).
La brush est définie avec la fonction GdipCreateTexture()
WrapMode #
WrapModeTile
La brush est affichée sur une surface de 130 x 130

Exemple 1:
On applique à cette brush d'origine la translation suivante :

dx.f = 100 : dy.f = 0

Il n'y a pas de translation en Y

La nouvelle origine de la brush en X commence à partir du 100ème pixel de la brush d'origine. Les 100 premiers pixels (les plus à gauche) de la brush d'origine vont se retrouver les plus à droite de la brush modifiée.

Si dx est négatif, la translation s'effectue dans le sens contraire.

Voici les rendus des brush:

 
brush d'origine   brush modifiée


Exemple 2:

On applique à la brush d'origine la translation suivante :

dx.f = 0 : dy.f = 100

Même principe mais selon l'axe Y. La translation s'effectue de bas en haut.

Voici les rendus des brush:

 
brush d'origine   brush modifiée

Si dy est négatif, la translation s'effectue du haut vers le bas.

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