CairoContext::arc
cairo_arc
(PECL cairo >= 0.1.0)
CairoContext::arc -- cairo_arc — Ajoute un arc circulaire
Description
Style orienté objet (méthode) :
$x
, float $y
, float $radius
, float $angle1
, float $angle2
) : voidStyle procédural :
$context
, float $x
, float $y
, float $radius
, float $angle1
, float $angle2
) : void
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
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');
?>
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-cairocontext.arc.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.