PHPを使用して画像を処理する場合、 ImageOpenPolygon関数は、ポリゴンを描画するために使用できる非常に便利なツールです。ただし、複雑な多角形のグラフィックをデバッグする場合、単に線を描くだけでは十分に明確ではない場合があります。現時点では、各頂点の隣にある座標ポイント番号をマークすると、視覚化とデバッグの効率を大幅に向上させることができます。
以下に、PHPを使用してドット番号のポリゴンを描く方法を段階的に紹介します。
まず、PHP環境がGDライブラリサポートを有効にしていることを確認する必要があります。あなたは次のことを確認できます:
<?php
if (function_exists('gd_info')) {
echo "GDライブラリが有効になっています";
} else {
echo "GDライブラリが有効になっていない";
}
?>
有効になっていない場合は、 php.iniの拡張機能= gdを開きます。
ポリゴンを描画し、各ポイントの隣のシーケンス番号をラベル付けするコードの完全な例を次に示します。
<?php
// キャンバスを作成します
$width = 500;
$height = 500;
$image = imagecreatetruecolor($width, $height);
// 色を定義します
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 255, 0, 0);
// 背景を埋めます
imagefill($image, 0, 0, $white);
// ポリゴンのポイントを定義します(偶数,2つの数字ごとにグループがありますx, y)
$points = [
100, 100,
200, 80,
300, 150,
250, 300,
150, 250
];
// 開いたポリゴンを描きます
imageopenpolygon($image, $points, count($points) / 2, $black);
// 各ポイントの横にあるポイント番号に注意してください
for ($i = 0; $i < count($points); $i += 2) {
$x = $points[$i];
$y = $points[$i + 1];
$label = 'P' . ($i / 2);
// マークテキスト
imagestring($image, 3, $x + 5, $y + 5, $label, $red);
// 座標を表すために小さなドットを描くことができます
imagefilledellipse($image, $x, $y, 6, 6, $red);
}
// ブラウザに画像を出力します
header('Content-Type: image/png');
imagepng($image);
// ファイルに保存します
// imagepng($image, '/path/to/save/mypolygon.png');
// リソースを破壊します
imagedestroy($image);
?>
このコードは次のとおりです。
500×500の白い背景キャンバスを作成します
Imageopenpolygonを使用して、密集していないポリゴンを描きます
各頂点に小さな赤い点を描きます
P0、P1、P2など、赤い赤いドットの隣にあるドット番号をマークします。
画像を出力の代わりに直接保存したい場合は、ラインImagePng($ image、 '/path/to/save/mypolygon.png')を除外できます。必要に応じて保存パスを変更します。
たとえば、次のパスを変更できます。
imagepng($image, 'https://m66.net/uploads/mypolygon.png');
(注:実際、 ImagePngはサーバーのローカルパスにのみ保存できます。URLを介してアクセスする場合は、対応するサーバーディレクトリにファイルを配置する必要があります。)
このテクニックは次のように理想的です。
ポリゴンエリア部門を開発およびデバッグします
マップシステム内の多角形の領域をマークします
データを視覚化するときの異なる頂点の位置の比較
グラフィックアルゴリズムの指導デモ
ポリゴンの各ポイントに数値を追加することにより、各ポイントの配置順序と論理的関係を直感的に見ることができ、開発とデバッグの効率を大幅に改善します。
ImageOpenPolygon 、 ImageString 、 ImageFilledLipseを組み合わせることにより、PHPの座標番号を持つポリゴンの数字を簡単に描くことができます。これにより、グラフィックの読みやすさが向上するだけでなく、その後の論理処理とエラーのトラブルシューティングも容易になります。