GdipFillPie()



Syntaxe
Resultat.i = GdipFillPie(*graphics, *brush, x.f, y.f, width.f, height.f, startAngle.f, sweepAngle.f)
Paramètres
*graphics

[in] Pointeur sur un objet Graphicsexistant.

*brush

[in] Pointeur sur un objet brush utilisé pour remplir l'intérieur de la forme.

x.f

[in] Coordonnée en x (abscisse) de l'angle supérieur gauche du rectangle qui définit l'ellipse à partir de laquelle l'arc est dessiné.

y.f

[in] Coordonnée en y (ordonnée) de l'angle supérieur gauche du rectangle qui définit l'ellipse à partir de laquelle l'arc est dessiné.

width.f

[in] Largeur du rectangle qui délimite l'ellipse à partir de laquelle l'arc est dessiné.

height.f

[in] Hauteur du rectangle qui délimite l'ellipse à partir de laquelle l'arc est dessiné.

startAngle.f

[in] Angle en degrés entre l'axe horizontal x de l'ellipse et le segment de droite tracé entre le centre de l'axe et le point de départ de l'arc (voir l'exemple de la description). Si l'angle est positif, la rotation se fait dans le sens des aiguilles d'une montre, sinon dans le sens contraire.

sweepAngle.f

[in] Angle en degrés entre le point de départ (startAngle) et la fin de l'arc. Si l'angle est positif, la rotation se fait dans le sens des aiguilles d'une montre, sinon dans le sens contraire.

Description

La fonction permet de dessiner un graphique à secteurs (appelé aussi camembert) sur le graphique et de remplir l'intérieur de la forme avec la brush.

Tous les types de brush sont supportés. Il faut faire attention avec les TextureBrush, LinearGradientBrush et PathGradientBrush concernant la taille de la brush, car elle est toujours dessinée par rapport au point d'origine du graphique (0,0). Le paramètre wrapmode de la brush définit si le motif est répété et la manière dont il se répète le cas échéant. Lorsque par exemple, on dessine la figure basée sur une brush plus petite que le graphique, si le motif se répète, la partie de l'image dessinée sera celle définie par les paramètres et il est possible que la zone affichée soit située dans une des zones de répétition de l'image. La zone prise en compte est celle du graphique (ou il y a répétition du motif) et non celle de l'image.

Le secteur est définit par un arc elliptique et par deux lignes radiales partant des deux extrémités de l'arc pour arriver au centre de l'axe x de l'ellipse.
Le secteur est basé sur un arc elliptique dont l'ellipse s'inscrit à l'intérieur du rectangle défini par les paramètres x.f, y.f, width.f, height.f.

startAngle permet de positionner l'arc sur le pourtour de l'ellipse (l'exemple du deuxième fichier permet grâce au curseur de faire glisser l'arc sur le pourtour de l'ellipse qui lui sert de base. L'exemple montre la différence entre startAngle et sweepAngle)

sweepAngle permet de limiter la longueur de l'arc.

Voici le rectangle et l'ellipse de référence :


startAngle est l'angle en degrés entre l'axe horizontal x de l'ellipse et le segment de droite tracé entre le centre de l'axe et le point de départ de l'arc (segment en gris sur le dessin ci-dessous). Si l'angle est positif, la rotation se fait dans le sens des aiguilles d'une montre, sinon dans le sens contraire.
Pour l'exemple ci-dessous, l'angle startAngle vaut 45° (positif), la rotation se fait dans le sens des aiguilles d'une montre. sweepAngle vaut 180°.
La référence pour le point de départ est un angle startAngle de 0 degrés, le segment gris est confondu avec l'axe horizontal de l'ellipse, le point de départ se trouve alors sur l'axe horizontal, repère 0 du dessin (c'est l'angle 0 d'un cercle trigonométrique).
Le secteur est en bleu.


sweepAngle est l'angle en degrés entre le segment de droite tracé entre le centre de l'axe horizontal x de l'ellipse et le point de départ de l'arc (startAngle) et un second segment de droite tracé entre le centre de l'axe horizontal x de l'ellipse et le point d'arrivé de l'arc (fin de l'arc). Ces segments sont en bleus sur le dessin ci-dessous car ils appartiennent au contour du secteur et sont dessinés. Si l'angle est positif, la rotation se fait dans le sens des aiguilles d'une montre à partir du point de départ pour obtenir le point d'arrivée, sinon c'est dans le sens contraire.
Un angle sweepAngle de 360 ou - 360 degrés dessinera entièrement l'ellipse.
Pour l'exemple ci-dessous, l'angle sweepAngle vaut 90° (positif), l'angle startAngle vaut 45° (positif).
Le secteur est en bleu.

Aperçu avec un dégradé linéaire (LinearGradientBrush) pour le remplissage:

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