ホームページ > バックエンド開発 > PHPチュートリアル > PHP で多角形、円弧、楕円を描くにはどうすればよいですか? (写真と文章で詳しく解説)

PHP で多角形、円弧、楕円を描くにはどうすればよいですか? (写真と文章で詳しく解説)

WBOY
リリース: 2023-04-10 17:52:01
オリジナル
3257 人が閲覧しました

前回の記事では、「 PHP で色を定義し、点、線、四角形を描画する方法を詳細に分析?」をお届けしました。 」では、PHP での点、線、四角形の描画に関する関連知識について説明しています。この記事では、他のグラフィックを描画する方法を見てみましょう。みんなが助けてくれるといいですね!

PHP で多角形、円弧、楕円を描くにはどうすればよいですか? (写真と文章で詳しく解説)

前回の記事で、四角形の描き方など、PHPでの基本的なグラフィックス描画は理解できました。それは描かれますか?それでは、PHP でポリゴンを描画する方法を見てみましょう。

#多角形の描画

は、四角形の描画に似ています。多角形を描画するには、

imagepolygon という 2 つの関数があります。 () 関数と imagefilledpolygon() 関数の構文形式は次のとおりです。

imagepolygon(resource $image, array $points, int $num_points, int $color)
imagefilledpolygon(resource $image, array $points, int $num_points, int $color)
ログイン後にコピー

これが Rectangle の 2 つの関数と似ている理由は、imagepolygon の後に、 () 関数 color は多角形のエッジを描画するために使用される色であり、imagefilledpolygon() 関数に続く色は多角形の内部の塗りつぶしを描画するために使用される色です。


構文では、$image はキャンバスを表し、$points は配列です。3 番目のパラメーター $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 はそれぞれ円弧の幅と高さを表します。 $end はそれぞれ円弧の始点角度と終点角度を表します。

imagefilledarc() 関数には、imagearc() 関数よりも $style パラメータが 1 つ多いことにも注意する必要があります。このパラメータは、色の塗りつぶしタイプを設定するために使用されます。次のタイプがあります:

  • 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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート