首頁 >後端開發 >php教程 >PHP中如何繪製多邊形、弧形和橢圓形? (圖文詳解)

PHP中如何繪製多邊形、弧形和橢圓形? (圖文詳解)

WBOY
WBOY原創
2021-10-19 18:16:363259瀏覽

在之前的文章中為大家帶來了《詳細分析PHP中怎樣定義顏色、繪製點、線和矩形? 》,其中講到了PHP中繪製點、線和矩形的相關知識,本篇文章我們來看一看,應該怎樣去繪製其他的圖形。希望對大家有幫助!

PHP中如何繪製多邊形、弧形和橢圓形? (圖文詳解)

經過之前的文章敘述,PHP繪製基本的圖形已經了解了,其中就有怎樣去繪製矩形,既然矩形能繪製的話,那三角形、五邊形又應該怎樣去繪製呢?那麼接下來我們來了解一下,PHP應該要怎麼去畫多邊形。

繪製多邊形

跟繪製矩形時有些相似,繪製多邊形也有兩個函數可以完成,就是 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);
?>

輸出結果:

PHP中如何繪製多邊形、弧形和橢圓形? (圖文詳解)

繪製橢圓

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

輸出結果:

PHP中如何繪製多邊形、弧形和橢圓形? (圖文詳解)

繪製弧線

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

輸出結果:


PHP中如何繪製多邊形、弧形和橢圓形? (圖文詳解)## 推薦學習:《

PHP影片教學

以上是PHP中如何繪製多邊形、弧形和橢圓形? (圖文詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn