GdipAddPathArcI()



Syntaxe
Resultat.i = GdipAddPathArcI(*path, x.l, y.l, width.l, height.l, startAngle.f, sweepAngle.f)
Paramètres
*path

[in] Pointeur sur un objet GraphicsPath.

x.l

[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.l

[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.l

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

height.l

[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 d'ajouter un arc elliptique à la figure en cours du GraphicsPath.
Si la figure contient déjà une ou des lignes ou courbes et que l'on ne démarre pas une nouvelle figure, une ligne est ajoutée pour relier le point de terminaison du segment précédent au début de l'arc.

L'arc est basé sur une ellipse qui s'inscrit à l'intérieur du rectangle défini par les paramètres x.l,y.l, width.l et height.l.

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 un rectangle et son 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).
L'arc elliptique 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 gris sur le dessin ci-dessous. 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).
L'arc elliptique est en bleu.

Voici un exemple :

Les dimensions du rectangle sont :

x = 40
y = 10
width = 250
height = 210
startAngle = 45 ; en degrés
sweepAngle = 180 ; en degrés

Voici l'arc tel qu'il est affiché avec 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