Cairo.Arc (gb.cairo)
Static Sub Arc ( XC As Float, YC As Float, Radius As Float [ , Angle1 As Float, Angle2 As Float ] )
-
XC : X position du centre de l'arc.
-
YC : Y position du centre de l'arc.
-
Radius : le rayon de l'arc.
-
Angle1 : l'angle de départ, en radians.
-
Angle2 : l'angle final, en radians.
Ajoute un arc de cercle de rayon
Radius au tracé courant. L'arc est centré à (
XC,
YC), commence à
Angle1 et s'étend dans la direction des angles croissants jusqu'à
Angle2. Si
Angle2 est plus petit que
Angle1 il sera progressivement incrémenté de
2 * π
jusqu'à être supérieur à
Angle1.
S'il y a un point en cours, un segment de droite initial sera ajouté au tracé pour le connecter au début de l'arc. Si le segment initial est indésirable, il peut être évité en appelant
NewSubPath avant d'appeler
Arc.
Les angles sont exprimés en radians. Un angle de
0.0
est dans la direction positive de l'axe des X (dans l'espace utilisateur). Un angle de
π/2.0
radians (
90
degrés) est dans la direction positive de l'axe des Y (dans l'espace utilisateur). Les angles croissent depuis la direction de l'axe des X positifs vers la direction de l'axe des Y positifs. Ainsi, avec la matrice de transformation par défaut, les angles augmentent dans le sens horaire.
Pour convertir les degrés en radians, utilisez la fonction
Rad().
Cette fonction donne les arcs dans la direction des angle croissants ; voir
ArcNegative pour obtenir des arcs dans le sens des angles décroissants.
L'arc est circulaire en espace utilisateur. Pour former un arc elliptique, vous pouvez pondérer la matrice de transformation courante par des valeurs différentes dans les directions des X et des Y. Par exemple, pour tracer une ellipse dans la boîte définie par
X,
Y,
Largeur,
Hauteur :
Cairo.Save()
Cairo.Tranlate(X + Largeur/ 2, Y + Hauteur/ 2)
Cairo.Scale(Largeur / 2, Hauteur/ 2)
Cairo.Arc(0, 0, 1, 0, Pi(2))
Cairo.Restore()