Maison  >  Article  >  développement back-end  >  Comment dessiner des polygones, des arcs et des ellipses en PHP ? (Explication détaillée avec images et texte)

Comment dessiner des polygones, des arcs et des ellipses en PHP ? (Explication détaillée avec images et texte)

WBOY
WBOYoriginal
2021-10-19 18:16:363226parcourir

Dans l'article précédent, je vous ai apporté "Analyse détaillée de la façon de définir des couleurs, de dessiner des points, des lignes et des rectangles en PHP ?" ", qui parle des connaissances pertinentes sur le dessin de points, de lignes et de rectangles en PHP. Dans cet article, voyons comment dessiner d'autres graphiques. J'espère que cela aidera tout le monde !

Comment dessiner des polygones, des arcs et des ellipses en PHP ? (Explication détaillée avec images et texte)

Après l'article précédent, j'ai déjà compris les bases du dessin graphique avec PHP, notamment comment dessiner un rectangle Si les rectangles peuvent être dessinés, comment dessiner les triangles et les pentagones ? Voyons donc comment dessiner des polygones en PHP.

Dessiner des polygones

est quelque peu similaire au dessin de rectangles. Il existe deux fonctions pour dessiner des polygones, à savoir la fonction imagepolygon() et imagefilledpolygon(). Fonctions, leur format de syntaxe est le suivant : imagepolygon() 函数和 imagefilledpolygon()函数,它们的语法格式如下:

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

之所以说和矩形的两个函数相似是因为,imagepolygon()函数后面的颜色是绘制多边形边线的颜色,imagefilledpolygon()函数后面的颜色是绘制多边形内部填充的颜色。

在语法中,$image表示的是画布 ;$points 是一个数组;第三个参数 $num_points 用来设置多边形的顶点数,必须大于 3。

示例如下:

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

输出结果:

Comment dessiner des polygones, des arcs et des ellipses en PHP ? (Explication détaillée avec images et texte)

绘制椭圆

在PHP中可以通过imageellipse() 函数来绘制一个椭圆,与绘制多边形类似也可以通过imagefilledellipse() 函数来绘制椭圆并且进行填充.它们的语法格式如下:

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)

其中,其中 $x 和 $y 分别代表椭圆圆心的横纵坐标;$width 和 $height 分别代表椭圆的宽度和高度,后面的$colorb分别代表了椭圆的边线颜色和椭圆的填充颜色。

示例如下:

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

输出结果:

Comment dessiner des polygones, des arcs et des ellipses en PHP ? (Explication détaillée avec images et texte)

绘制弧线

在PHP中可以通过 imagearc() 函数和 imagefilledarc() 函数来进行绘制一条弧线或者圆形,其中不同的是,imagearc() 函数绘制弧线的颜色是边线颜色,imagefilledarc() 函数绘制弧线会填充。它们的语法格式如下:

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)

其中 $x 和 $y 分别表示为圆弧中心点的横纵坐标;$width 和 $height 分别表示为圆弧的宽度和高度;$start 和 $end 分别代表圆弧的起点角度和终点角度。

其中还有我们需要注意的是,imagefilledarc() 函数比 imagearc() 函数多了一个 $style 参数,这个参数是用来设置颜色的填充类型的。它有以下几种:

  • IMG_ARC_PIE:普通填充,产生圆形边界;

  • IMG_ARC_CHORD:只使用直线连接起点和终点,需要注意的是它与 IMG_ARC_PIE 互斥;

  • IMG_ARC_NOFILL:指明弧或弦只有轮廓,不填充;

  • IMG_ARC_EDGED

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

    La raison pour laquelle les deux fonctions de rectangle sont similaires est que la couleur après la fonction imagepolygon() est la couleur du bord du polygone, et la couleur après la fonction imagefilledpolygon() est le remplissage interne de la couleur du polygone.

Dans la syntaxe, $image représente le canevas ; $points est un tableau ; le troisième paramètre $num_points est utilisé pour définir le nombre de sommets du polygone, qui doit être supérieur à 3.

L'exemple est le suivant :

rrreee
Résultat de sortie :

Comment dessiner des polygones, des arcs et des ellipses en PHP ? (Explication détaillée avec images et texte)Comment dessiner des polygones, des arcs et des ellipses en PHP ? (Explication détaillée avec images et texte)

Dessiner une ellipse

🎜🎜🎜En PHP, vous pouvez utiliser la fonction imageellipse() pour dessiner une ellipse. Semblable au dessin de polygones , vous pouvez également utiliser la fonction imagefilledellipse() pour dessiner et remplir l'ellipse. Leur format de syntaxe est le suivant : 🎜rrreee🎜où $x et $y représentent les coordonnées horizontales et verticales du centre du. ellipse respectivement ; $width et $height représentent respectivement la largeur et la hauteur de l'ellipse, le $colorb suivant représente respectivement la couleur du bord de l'ellipse et la couleur de remplissage de l'ellipse. 🎜🎜🎜L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie : 🎜🎜Comment dessiner des polygones, des arcs et des ellipses en PHP ? (Explication détaillée avec images et texte)🎜🎜🎜🎜Dessiner des arcs🎜🎜🎜🎜🎜 peut être réalisé en PHP via la fonction imagearc() et la fonction imagefilledarc() function Dessinez un arc ou un cercle. La différence est que la couleur de l'arc dessiné par la fonction imagearc() est la couleur du bord, et l'arc dessiné par la fonction imagefilledarc() sera rempli. Leur format de syntaxe est le suivant : 🎜rrreee🎜où $x et $y représentent respectivement les coordonnées horizontales et verticales du point central de l'arc ; $width et $height représentent respectivement la largeur et la hauteur de l'arc ; le cercle respectivement Les angles de début et de fin de l'arc. 🎜🎜Ce que nous devons noter, c'est que la fonction imagefilledarc() a un paramètre $style de plus que la fonction imagearc(). Ce paramètre est utilisé pour définir le type de remplissage de la couleur. Il a les types suivants : 🎜<ul style="max-width:90%"> <li>🎜<code>IMG_ARC_PIE : remplissage ordinaire, produisant des bordures circulaires 🎜🎜
  • 🎜IMG_ARC_CHORD
  •  : utilisez uniquement des lignes droites pour relier le point de départ et le point final. Il convient de noter qu'il s'exclut mutuellement avec IMG_ARC_PIE ; l'arc ou la corde n'a qu'un contour et aucun remplissage ;🎜🎜
  • 🎜IMG_ARC_EDGED : Utilisez une ligne droite pour relier les points de début et de fin au point central. 🎜🎜🎜🎜L'exemple est le suivant : 🎜🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜
  • Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn