溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中如何繪制多邊形、弧形和橢圓

發(fā)布時(shí)間:2021-10-20 09:33:50 來(lái)源:億速云 閱讀:143 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“PHP中如何繪制多邊形、弧形和橢圓”,在日常操作中,相信很多人在PHP中如何繪制多邊形、弧形和橢圓問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)HP中如何繪制多邊形、弧形和橢圓”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

PHP中如何繪制多邊形、弧形和橢圓

經(jīng)過(guò)之前的文章講述,PHP繪制基本的圖形已經(jīng)了解了,其中就有怎樣去繪制矩形,既然矩形能繪制的話,那三角形、五邊形又應(yīng)該怎樣去繪制呢?那么接下來(lái)我們來(lái)了解一下,PHP中應(yīng)該怎樣去繪制多邊形。

繪制多邊形

跟繪制矩形時(shí)有些相似,繪制多邊形也有兩個(gè)函數(shù)可以完成,就是 imagepolygon() 函數(shù)和 imagefilledpolygon()函數(shù),它們的語(yǔ)法格式如下:

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

之所以說(shuō)和矩形的兩個(gè)函數(shù)相似是因?yàn)?,imagepolygon()函數(shù)后面的顏色是繪制多邊形邊線的顏色,imagefilledpolygon()函數(shù)后面的顏色是繪制多邊形內(nèi)部填充的顏色。

在語(yǔ)法中,$image表示的是畫(huà)布 ;$points 是一個(gè)數(shù)組;第三個(gè)參數(shù) $num_points 用來(lái)設(shè)置多邊形的頂點(diǎn)數(shù),必須大于 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('Content-type:image/jpeg');
    imagejpeg($img);
    imagedestroy($img);
?>

輸出結(jié)果:

PHP中如何繪制多邊形、弧形和橢圓

繪制橢圓

在PHP中可以通過(guò)imageellipse() 函數(shù)來(lái)繪制一個(gè)橢圓,與繪制多邊形類似也可以通過(guò)imagefilledellipse() 函數(shù)來(lái)繪制橢圓并且進(jìn)行填充.它們的語(yǔ)法格式如下:

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 分別代表橢圓圓心的橫縱坐標(biāo);$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('Content-type:image/jpeg');
    imagejpeg($img);
    imagedestroy($img);
?>

輸出結(jié)果:

PHP中如何繪制多邊形、弧形和橢圓

繪制弧線

在PHP中可以通過(guò) imagearc() 函數(shù)和 imagefilledarc() 函數(shù)來(lái)進(jìn)行繪制一條弧線或者圓形,其中不同的是,imagearc() 函數(shù)繪制弧線的顏色是邊線顏色,imagefilledarc() 函數(shù)繪制弧線會(huì)填充。它們的語(yǔ)法格式如下:

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 分別表示為圓弧中心點(diǎn)的橫縱坐標(biāo);$width 和 $height 分別表示為圓弧的寬度和高度;$start 和 $end 分別代表圓弧的起點(diǎn)角度和終點(diǎn)角度。

其中還有我們需要注意的是,imagefilledarc() 函數(shù)比 imagearc() 函數(shù)多了一個(gè) $style 參數(shù),這個(gè)參數(shù)是用來(lái)設(shè)置顏色的填充類型的。它有以下幾種:

  • IMG_ARC_PIE:普通填充,產(chǎn)生圓形邊界;

  • IMG_ARC_CHORD:只使用直線連接起點(diǎn)和終點(diǎn),需要注意的是它與 IMG_ARC_PIE 互斥;

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

  • IMG_ARC_EDGED:用直線將起始和結(jié)束點(diǎn)與中心點(diǎn)相連。

示例如下:

<?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('Content-type:image/jpeg');
    imagejpeg($img);
    imagedestroy($img);
?>

輸出結(jié)果:

PHP中如何繪制多邊形、弧形和橢圓

到此,關(guān)于“PHP中如何繪制多邊形、弧形和橢圓”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI