PHPのGDライブラリを使用してグラフを描画する場合、 ImageOpenPolygon()は非常に実用的な機能であり、開いた(除去されていない)ポリゴンラインを描画します。ただし、デフォルトで描かれた行は薄くなり、視覚的な需要が高いシナリオでは目を引くことはありません。
ポリゴン線をより厚く、より明確にするために、画像セットネス()関数は役立ちます。この記事では、これらの2つの機能を使用してニーズに合わせたポリゴン効果を描く方法を紹介します。
ImageOpenPolygon(Resource $ Image、Array $ Points、int $ num_points、int $ color):bool
この関数は、指定されたポイントのセットに基づいて、画像上に開いたポリゴンパスを描画します。
ImagesEtthickness(Resource $ Image、int $厚さ):bool
この関数は、直線を描くときに線の厚さを設定するために使用されます。
注: ImagesEtthickness()は、直線図のグローバルな厚さを設定します。これは、後続のすべての線図面に影響します。
厚い線で五角形を描く方法を示すための完全な例を以下に示します。
<?php
// キャンバスを作成します
$image = imagecreatetruecolor(400, 400);
// 色を割り当てます
$white = imagecolorallocate($image, 255, 255, 255);
$blue = imagecolorallocate($image, 0, 0, 255);
// 白で満たされた背景
imagefill($image, 0, 0, $white);
// 五角形の頂点を定義します
$points = [
200, 50, // 頂点1
300, 150, // 頂点2
250, 300, // 頂点3
150, 300, // 頂点4
100, 150 // 頂点5
];
// ラインの厚さを設定します
imagesetthickness($image, 5);
// 開いたポリゴンを描きます
imageopenpolygon($image, $points, count($points), $blue);
// ブラウザに画像を出力します
header('Content-Type: image/png');
imagepng($image);
// 無料のリソース
imagedestroy($image);
?>
上記の例では、 ImagesEtthickness($ image、5);描画されたポリゴンがデフォルトの1ピクセルラインよりも厚くなり、視覚効果が大幅に改善されるように、ライン幅を5ピクセルに設定します。
厚さの調整:異なるラインセグメントに異なる厚さを持たせる場合は、各ラインを描画する前に画像セットネス()を動的に設定する必要があります。ただし、 ImageOpenPolygon()などのバッチ描画関数の場合、それらは均一にのみ設定できます。
出力最適化:生成されたグラフィックをサーバーに保存する場合は、 ImagePng($ image、 '/path/to/save/polygon.png')を使用できます。次に、ページに参照してください。
<img src="https://m66.net/path/to/save/polygon.png" alt="厚い線ポリゴンの例">
ジャグを避ける:厚い線をよりスムーズに見せるために、キャンバスを作成し、出力をスケーリングすることで間接的にアンチエイリアスするときに大きなサイズを使用できます。
ImagesEtthickness()とImageOpenPolygon()を組み合わせることで、概略図、ゲームマップ、データの視覚化などのシーンを生成するのに非常に役立つ、より厚くて目を引くポリゴンを簡単に描画できます。