CairoContext::arc

cairo_arc

(PECL cairo >= 0.1.0)

CairoContext::arc -- cairo_arcAjoute un arc circulaire

Description

Style orienté objet (méthode) :

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

Style procédural :

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

Liste de paramètres

context

Un objet CairoContext valide.

x

Position en X

y

Position en Y

radius

Rayon de l'arc

angle1

Angle de départ

angle2

Angle de fin

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

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');
?>

Voir aussi

LoadingChargement en cours