Home  >  Article  >  Backend Development  >  How to draw polygons, arcs and ellipses in PHP? (Detailed explanation with pictures and text)

How to draw polygons, arcs and ellipses in PHP? (Detailed explanation with pictures and text)

WBOY
WBOYOriginal
2021-10-19 18:16:363219browse

In the previous article, I brought you " Detailed analysis of how to define colors, draw points, lines and rectangles in PHP? ", which talks about the relevant knowledge of drawing points, lines and rectangles in PHP. In this article, let's take a look at how to draw other graphics. I hope everyone has to help!

How to draw polygons, arcs and ellipses in PHP? (Detailed explanation with pictures and text)

After the previous article, I have already understood the basic graphics drawing with PHP, including how to draw a rectangle. Since rectangles can be drawn, then triangles and pentagons How should it be drawn? So let's take a look at how to draw polygons in PHP.

Drawing polygons

is somewhat similar to drawing rectangles. There are two functions to draw polygons, which are imagepolygon () function and imagefilledpolygon() function, their syntax format is as follows:

imagepolygon(resource $image, array $points, int $num_points, int $color)
imagefilledpolygon(resource $image, array $points, int $num_points, int $color)

The reason why it is similar to the two functions of rectangle is because, after the imagepolygon() function The color is the color used to draw the edges of the polygon, and the color following the imagefilledpolygon() function is the color used to draw the internal filling of the polygon.

In the syntax, $image represents the canvas; $points is an array; the third parameter $num_points is used to set the number of vertices of the polygon, which must be greater than 3.

The example is as follows:

<?php
    $img = imagecreate(300, 150);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    $blue = imagecolorallocate($img, 0, 0, 255);
    $points1 = array(
        255,35,
        250,15,
        295,56,
        233,115,
        185,77
    );
    $points2 = array(
        10,5,
        100,15,
        140,66,
        70,135,
        25,77
    );
    imagepolygon($img, $points1, rand(3, 5), $blue);
    imagefilledpolygon($img, $points2, rand(3, 5), $green);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>

Output result:

How to draw polygons, arcs and ellipses in PHP? (Detailed explanation with pictures and text)

##Draw an ellipse

In PHP, you can draw an ellipse through the

imageellipse() function. Similar to drawing a polygon, you can also draw and fill the ellipse through the imagefilledellipse() function. .Their syntax format is as follows:

imageellipse(resource $image, int $x, int $y, int $width, int $height, int $color)
imagefilledellipse(resource $image, int $x, int $y, int $width, int $height, int $color)

Among them, $x and $y represent the horizontal and vertical coordinates of the center of the ellipse respectively; $width and $height represent the width and height of the ellipse respectively, and the following $colorb represents respectively Set the edge color of the ellipse and the fill color of the ellipse.


The example is as follows:

<?php
    $img = imagecreate(300, 150);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    $blue = imagecolorallocate($img, 0, 0, 255);
    imagefilledellipse($img, 75, 75, 120, 80,  $green);
    imageellipse($img, 225, 75, 90, 120,$blue);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>

Output result:

How to draw polygons, arcs and ellipses in PHP? (Detailed explanation with pictures and text)

Draw arc

In PHP, you can draw an arc or circle through the

imagearc() function and the imagefilledarc() function. The different Yes, the color of the arc drawn by the imagearc() function is the edge color, and the arc drawn by the imagefilledarc() function is filled. Their syntax format is as follows:

imagearc(resource $image, int $x, int $y, int $width, int $height, int $start, int $end, int $color)
imagefilledarc(resource $image, int $x, int $y, int $width, int $height, int $start, int $end, int $color, int $style)

where $x and $y represent the horizontal and vertical coordinates of the arc center point respectively; $width and $height represent the width and height of the arc respectively; $start and $ end represents the starting point angle and the ending point angle of the arc respectively.

We also need to note that the imagefilledarc() function has one more $style parameter than the imagearc() function. This parameter is used to set the color fill type. It has the following types:

  • IMG_ARC_PIE: normal filling, producing a circular border;

  • IMG_ARC_CHORD : Only use straight lines to connect the starting point and the end point. It should be noted that it is mutually exclusive with IMG_ARC_PIE;

  • IMG_ARC_NOFILL: Specifies that the arc or chord only has an outline, not Fill;

  • IMG_ARC_EDGED: Connect the start and end points to the center point with a straight line.

The example is as follows:


<?php
    $img = imagecreate(300, 100);
    imagecolorallocate($img, 255, 255, 255);
    $blue = imagecolorallocate($img, 0, 0, 255);
   
    imagearc($img, 100, 50, 50, 80, 0, 270, $blue);
 
    imagefilledarc($img, 200, 55, 80, 30, 130, 100, $blue, IMG_ARC_EDGED|IMG_ARC_NOFILL);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>

Output result:


How to draw polygons, arcs and ellipses in PHP? (Detailed explanation with pictures and text)

Recommended study:《

PHP video tutorial

The above is the detailed content of How to draw polygons, arcs and ellipses in PHP? (Detailed explanation with pictures and text). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn