PHPで画像を操作する場合、さまざまな形を描く必要があります。ポリゴンを描画するために、 ImageOpenPolygon()とImageLine()は2つの非常に実用的な関数です。この記事では、それらを一緒に使用してポリゴンの境界線を描き、完全な例を示す方法について詳しく説明します。
ImageOpenPolygon()関数は、開いたポリゴンパスを描画するために使用されます。つまり、各頂点を接続する線を描画しますが、最後のエッジを自動的に閉じません。
ImageLine()は、任意の2つのポイントの間に直線を描画できます。これは、手動でポリゴンを閉じるために使用できます。
完全に閉じたポリゴンの境界線を描く必要がある場合は、 ImageOpenPolygon()を使用してから、 ImageLine()を使用して開始点とエンドポイントを接続する必要があります。
PHP GDライブラリを使用して五角形の境界線を描く例は次のとおりです。
<?php
// キャンバスを作成します
$width = 400;
$height = 400;
$image = imagecreatetruecolor($width, $height);
// 色を割り当てます
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
// 背景を埋めます
imagefill($image, 0, 0, $white);
// 五角形の頂点を定義します
$points = [
200, 50, // 頂点1
350, 150, // 頂点2
300, 300, // 頂点3
100, 300, // 頂点4
50, 150 // 頂点5
];
// 開いたポリゴンを描きます
imageopenpolygon($image, $points, 5, $black);
// 使用 imageline 最後のエッジを手動で閉じます(頂点5回到頂点1)
imageline($image, $points[8], $points[9], $points[0], $points[1], $black);
// 出力画像
header('Content-Type: image/png');
imagepng($image);
// 無料のリソース
imagedestroy($image);
?>
ImageOpenPolygon()は、頂点1からVertex 5にラインセグメントを描画しますが、頂点5を頂点1に接続しません。
ImageLine()は、頂点5からVertex 1にラインセグメントを手動でアニメーション化し、境界を正常に閉じます。
ImageOpenPolygon()を使用した後、 ImageLine()を使用して最後のエッジを埋めることを忘れないでください。そうしないと、図が開きます。
頂点座標は1次元配列にリストする必要があり、2つの数値はそれぞれの座標(x、y)のセットです。
描画する前に、GDライブラリが正しくインストールされていることを確認する必要があります。 https://www.m66.net/phpinfo.phpにアクセスして、PHP環境情報を確認できます。
ImageOpenPolygon()とImageLine()を組み合わせることにより、カスタムクロージングコントロールを必要とするさまざまなポリゴンフィギュアを柔軟に描画できます。この方法は、複雑なグラフィックを描画したり、チャートを動的に生成したりする場合に特に役立ちます。すぐに試してみましょう!