CairoContext::arc

cairo_arc

(PECL cairo >= 0.1.0)

CairoContext::arc -- cairo_arcAñade un arco circular

Descripción

Estilo orientado a objetos (método):

public CairoContext::arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 ) : void

Estilo por procedimientos:

cairo_arc ( CairoContext $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.

Parámetros

context

Un objeto CairoContext válido

x

posición x

y

posición y

radius

Radio del arco

angle1

ángulo de inicio

angle2

ángulo final

Valores devueltos

No devuelve ningún valor.

Ejemplos

Ejemplo #1 Estilo orientado a objetos

<?php

$s 
= new CairoImageSurface(CairoFormat::ARGB32100100);
$c = new CairoContext($s);

$c->setSourceRgb(000);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(111);

for (
$r 50$r 0$r -= 10) {
 
$c->arc(5050$r0M_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_IMAGE100100);
$c cairo_create($s);

cairo_set_source_rgb($c000);
cairo_paint($c);

cairo_set_source_rgb($c111);
cairo_set_line_width($c1);

for (
$r 50$r 0$r -= 10) {
 
cairo_arc($c5050$r0M_PI);
 
cairo_stroke($c);
 
cairo_fill($c);
}

cairo_surface_write_to_png($sdirname(__FILE__) . '/cairo_arc.png');
?>

Ver también