(PECL cairo >= 0.1.0)
CairoContext::arc -- cairo_arc — Ajoute un arc circulaire
Style orienté objet (méthode) :
$x
   , float $y
   , float $radius
   , float $angle1
   , float $angle2
   )Style procédural :
$context
   , float $x
   , float $y
   , float $radius
   , float $angle1
   , float $angle2
   )
   Ajoute un arc circulaire d'un rayon donné au chemin courant.
   L'arc est centré aux coordonnées x, y,
   commence à l'angle angle1 et se forme  en augmentant son angle
   jusqu'à l'angle angle2. Si l'angle angle2
   est plus petit que l'angle angle1, il sera augmenter
   progressivement de 2*M_PI tant qu'il sera plus petit que l'angle angle1.
   
   S'il y a un point courant, un segment de ligne initial sera ajouté au chemin pour connecter
   le point courant et le début de l'arc. Si cette ligne initiale n'est pas désirée,
   elle peut être évitée en appelant la méthode CairoContext::newSubPath()
   ou la fonction procédurale cairo_new_sub_path() avant d'appeler
   CairoContext::arc() ou cairo_arc().
   
   Les angles sont mesurés en radians. Un angle de 0.0 est dans la direction de l'axe X
   positif (dans l'espace utilisateur). Un angle de M_PI/2.0 radians (90 degrés) est dans
   la direction de l'axe Y positif (dans l'espace utilisateur). L'angle augment
   depuis l'axe X positif jusqu'à l'axe Y positif. Aussi, avec la matrice de transformation
   par défaut, les angles augmentent dans le sens des aiguilles d'une montre.
   
   ( Pour convertir les degrés en radians, utilisez la formule : degrés * (M_PI / 180.).)
   Cette fonction fournit un arc dans la direction des angles croissants ; voir la méthode
   CairoContext::arcNegative() ou la fonction cairo_arc_negative()
   pour récupérer l'angle dans la direction des angles croissants.
   
  
contextUn objet CairoContext valide.
xPosition en X
yPosition en Y
radiusRayon de l'arc
angle1Angle de départ
angle2Angle de fin
Aucune valeur n'est retournée.
Exemple #1 Style orienté objet
<?php
$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);
$c->setSourceRgb(0, 0, 0);
$c->paint();
$c->setLineWidth(1);
$c->setSourceRgb(1, 1, 1);
for ($r = 50; $r > 0; $r -= 10) {
 $c->arc(50, 50, $r, 0, 2 * M_PI);
 $c->stroke();
 $c->fill();
}
$s->writeToPng(dirname(__FILE__) . '/CairoContext__arc.png');
?>
Exemple #2 Style procédural
<?php
$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);
cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);
cairo_set_source_rgb($c, 1, 1, 1);
cairo_set_line_width($c, 1);
for ($r = 50; $r > 0; $r -= 10) {
 cairo_arc($c, 50, 50, $r, 0, 2 * M_PI);
 cairo_stroke($c);
 cairo_fill($c);
}
cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_arc.png');
?>