GdipSetPathGradientLinearBlend()



Syntaxe
Resultat.i = GdipSetPathGradientLinearBlend(*brush, focus.f, scale.f)
Paramètres
*brush

[in] Pointeur sur un objet PathGradientBrush.

focus.f

[in] Nombre flottant qui spécifie l'emplacement où le dégradé est uniquement composé de la couleur centrale. Ce nombre est un pourcentage de la distance entre le contour extérieur et de point central et doit être compris entre 0.0 et 1.0 (0.0 indique 0% et 1.0 100%).
A partir du point central, le dégradé varie dans le sens décroissant vers la/les couleurs du contour de manière linéaire vers l'ensemble des éléments qui constitue le contour.

scale.f

[in] Nombre flottant qui indique le pourcentage de la couleur centrale du dégradé utilisée en mélange, à partir de la position du focus, vers chacune des couleurs environnantes pour terminer avec la couleur du contour du dégradé. Ce nombre doit être compris entre 0.0 et 1.0 (0.0 indique 0% et 1.0 100%).
Scale spécifie la rapidité avec laquelle les couleurs varient dans le sens décroissant.

Description
Cette fonction permet de créer un dégradé avec une atténuation linéaire depuis une couleur centrale vers chacune des couleurs environnantes. Elle est aussi nommée transformation BlendTriangularShape.

Voici un exemple de fonctionnement :

Un dégradé PathGradientBrush classique commence par la couleur du contour et se termine par la couleur centrale (à l'origine au centre géométrique de la figure) et ce depuis tout les éléments du contour. L'ensemble converge vers le point central. La couleur centrale se situe à 100% de distance par rapport à la couleur du contour.

Le paramètre focus permet de déplacer la position de cette couleur centrale entre 0% et 100% de cette distance.

0% signifie que la couleur centrale a pris la place de la couleur de contour et la couleur du contour a pris la place de la couleur centrale.

50% signifie que la couleur centrale est à mi-chemin entre le contour et le centre géométrique du dégradé. La couleur du contour se trouve sur l'ensemble du contour ainsi qu'au centre géométrique de la figure. La couleur centrale est disposée en une forme identique à celle du contour à mi-distance entre le contour extérieur et le centre géométrique (voir la troisième image ci-dessous).

100% signifie que la couleur centrale est au centre géométrique du dégradé. La couleur du contour se trouve sur l'ensemble du contour. C'est le même rendu que la brush d'origine pour notre exemple.

Prenons la couleur du contour blanche (par défaut), celle du point central rouge et une forme triangulaire comme contour de la brush. Pour l'exemple, le paramètre scale est à 100% (opacité complète de la couleur centrale rouge).

La brush sans application de la fonction donne ceci :

 

Le dégradé avec :  focus = 0%, scale = 100% donne ceci :

 

Le dégradé avec : focus = 50%, scale = 100%   donne ceci :

 

Le dégradé avec : focus = 100%, scale = 100%   donne ceci :

 

Le paramètre scale permet de faire varier l'intensité de la couleur centrale. Si on diminue cette intensité, la couleur rouge va se retrouver mélangée avec la couleur de contour donnant une impression de diminution d'intensité de la couleur centrale.

0% signifie que la couleur centrale a disparue et est remplacée par la couleur du contour (plus de couleur centrale dans le dégradé) quelle que soit la valeur du paramètre focus.

50% signifie que la couleur du focus (couleur centrale) est semi-transparente avec la couleur du contour.

100% signifie que la couleur du focus (couleur centrale) est complètement opaque, pas de transparence avec la couleur du contour.

Prenons le paramètre focus à 50% pour les 3 prochaines images. La brush d'origine est toujours la même.

Le dégradé avec : scale = 0%,  focus = 50% donne ceci :

 

Le dégradé avec : scale = 50%,  focus = 50% donne ceci :

 

Le dégradé avec : scale = 100%,  focus = 50% donne ceci :

 

Cette fonction s'applique à toutes les brush PathGradientBrush.

Le deuxième fichier d'exemple permet de comparer le rendu des fonctions GdipSetPathGradientLinearBlend() et GdipSetPathGradientSigmaBlend().

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