(PECL cairo >= 0.1.0)
CairoContext::arc -- cairo_arc — Añade un arco circular
Estilo orientado a objetos (método):
$x
    , float $y
    , float $radius
    , float $angle1
    , float $angle2
   ) : voidEstilo por procedimientos:
$context
   , float $x
   , float $y
   , float $radius
   , float $angle1
   , float $angle2
   ) : void
   Añade un arco circular del radio dado al trazado actual.
   El arco está centrado en (x, y), comenzando en
   angle1 y procediendo en ángulos incrementados hasta el final en
   angle2.
   Si angle2 es menor que angle1 será
   incrementado progresivamente por 2*M_PI hasta que sea mayor que angle1.
   
   Si hay un punto actual se añadirá un segmento de línea al trazado para conectar el
   punto actual al inicio del arco. Si no se desea esta línea inicial,
   se puede evitar llamando a CairoContext::newSubPath() o en estilo procedural 
   cairo_new_sub_path() antes de llamar a CairoContext::arc()
   o a cairo_arc().
   
   Los ángulos se miden en radianes. Un ángulo de 0.0 está en la dirección del eje X positivo
   (en espacio de usuario). Un ángulo de M_PI/2.0 radianes (90 grados) está en la dirección del eje Y
   positivo (en espacio de usuario). Los ángulos se incrementan en la dirección desde el eje X positivo hacia el
   eje Y positivo. Así, con la matriz de transformación predeterminada, los ángulos se incrementan en el sentido de las agujas del reloj.
   
   (Para convertir grados a radianes use grados * (M_PI / 180.).)
   Esta función da el arco en la dirección de los ángulos incrementados; véase
   CairoContext::arcNegative() o cairo_arc_negative()
   para obtener el arco el la dirección de los ángulos decrementados.
   
   
  
contextUn objeto CairoContext válido
xposición x
yposición y
radiusRadio del arco
angle1ángulo de inicio
angle2ángulo final
No devuelve ningún valor.
Ejemplo #1 Estilo orientado a objetos
<?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');
?>
Ejemplo #2 Estilo por procedimientos
<?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');
?>