SunshinePHP 2019 CFP Started

# ImagickDraw::arc

(PECL imagick 2.0.0)

ImagickDraw::arcDraws an arc

### Descrierea

bool ImagickDraw::arc ( float `\$sx` , float `\$sy` , float `\$ex` , float `\$ey` , float `\$sd` , float `\$ed` )
Avertizare

Această funcție nu este documentată în prezent; este disponibilă numai lista sa de argumente.

Draws an arc falling within a specified bounding rectangle on the image.

### Parametri

`sx`

Starting x ordinate of bounding rectangle

`sy`

starting y ordinate of bounding rectangle

`ex`

ending x ordinate of bounding rectangle

`ey`

ending y ordinate of bounding rectangle

`sd`

starting degrees of rotation

`ed`

ending degrees of rotation

### Valorile întoarse

Nu este întoarsă nici o valoare.

### Exemple

Example #1 ImagickDraw::arc()

``` <?phpfunction arc(\$strokeColor, \$fillColor, \$backgroundColor, \$startX, \$startY, \$endX, \$endY, \$startAngle, \$endAngle) {    //Create a ImagickDraw object to draw into.    \$draw = new \ImagickDraw();    \$draw->setStrokeWidth(1);    \$draw->setStrokeColor(\$strokeColor);    \$draw->setFillColor(\$fillColor);    \$draw->setStrokeWidth(2);    \$draw->arc(\$startX, \$startY, \$endX, \$endY, \$startAngle, \$endAngle);    //Create an image object which the draw commands can be rendered into    \$image = new \Imagick();    \$image->newImage(IMAGE_WIDTH, IMAGE_HEIGHT, \$backgroundColor);    \$image->setImageFormat("png");    //Render the draw commands in the ImagickDraw object     //into the image.    \$image->drawImage(\$draw);    //Send the image to the browser    header("Content-Type: image/png");    echo \$image->getImageBlob();}?> ```

``` You can do a pie chart with a combination of arc and polygon functions (there really ought to be a built-in command for this) <?php //  create a new canvas object and a white image \$canvas     = new Imagick(); \$canvas->newImage(600, 600, 'grey'); image_pie(\$canvas, 300, 300, 200, 0, 45, 'red'); image_pie(\$canvas, 300, 300, 200, 45, 125, 'green'); image_pie(\$canvas, 300, 300, 200, 125, 225, 'blue'); image_pie(\$canvas, 300, 300, 200, 225, 300, 'cyan'); image_pie(\$canvas, 300, 300, 200, 300, 360, 'orange'); //  output the image \$canvas->setImageFormat('png'); header("Content-Type: image/png"); echo \$canvas; exit; // FUNCTIONS function image_arc( &\$canvas, \$sx, \$sy, \$ex, \$ey, \$sd, \$ed, \$color = 'black' ) {     //  draw arc on canvas     //  \$sx, \$sy, \$ex, \$ey specify a bounding rectangle of a circle with the origin in the middle     //  \$sd, and \$ed specify start and end angles in degrees     \$draw = new ImagickDraw();     \$draw->setFillColor(\$color);     \$draw->setStrokeColor(\$color);     \$draw->setStrokeWidth(1);     \$draw->arc(\$sx, \$sy, \$ex, \$ey, \$sd, \$ed);     \$canvas->drawImage(\$draw); } function image_pie( &\$canvas, \$ox, \$oy, \$radius, \$sd, \$ed, \$color = 'black' ) {     //  draw pie segment     //  \$ox, \$oy specify the circle origin     //  \$sd, and \$ed specify start and end angles in degrees     //  degrees start from 0 = East, and go clockwise     //  position 1 - convert degrees to radians and get first point on perimeter of circle     \$x1     = \$radius * cos(\$sd / 180 * 3.1416);     \$y1     = \$radius * sin(\$sd / 180 * 3.1416);     //  position 2 - convert degrees to radians and get second point on perimeter of circle     \$x2     = \$radius * cos(\$ed / 180 * 3.1416);     \$y2     = \$radius * sin(\$ed / 180 * 3.1416);     //  draw segment triangle - specify the 3 points and draw a polygon     \$points = array(array('x' => \$ox, 'y' => \$oy), array('x' => \$ox + \$x1, 'y' => \$oy + \$y1), array('x' => \$ox + \$x2, 'y' => \$oy + \$y2));     image_polygon(\$canvas, \$points, \$color);     //  draw corrsesponding arc to complete the "pie" segment     image_arc(\$canvas, \$ox - \$radius, \$oy - \$radius, \$ox + \$radius, \$oy + \$radius, \$sd, \$ed, \$color); } function image_polygon( &\$canvas, \$points, \$color = 'black' ) {     //  draw a polygon on canvas     \$draw = new ImagickDraw();     \$draw->setFillColor(\$color);     \$draw->setStrokeColor(\$color);     \$draw->setStrokeWidth(1);     \$draw->polygon(\$points);     \$canvas->drawImage(\$draw); } ?> ```