現在の位置: ホーム> 最新記事一覧> ImageOpenPolygon()を使用してレーダー画像/スパイダー画像の図面をシミュレートする方法

ImageOpenPolygon()を使用してレーダー画像/スパイダー画像の図面をシミュレートする方法

M66 2025-05-31

データの視覚化では、レーダーグラフ(またはスパイダーグラフ)は、多次元データを視覚的に表示するのに役立つ非常に便利なグラフです。 PHP開発者の場合、 ImageOpenPolygon()関数を使用して、描画レーダー図をシミュレートできます。この機能はGDライブラリの一部であり、画像にポリゴンを描くことができます。頂点を合理的に設定することにより、レーダーマップの効果を実現できます。この記事では、PHPのImageOpenPolygon()関数を使用してレーダー図を描画する方法を紹介します。

1。レーダー図の概念

スパイダーチャートとしても知られるレーダーチャートは、多次元データを表示するチャートです。各データポイントはグラフの寸法を表し、データ値は頂点を介して接続されて閉じたポリゴンを形成します。特に複数のオブジェクトまたは寸法を比較する必要がある場合、複数の変数間の関係を表示するのに適しています。

2。ImageOpenPolygon ()を使用して、レーダー図を描画します

ImageOpenPolygon()関数は、PHP GDライブラリの関数であり、通常、画像にポリゴンを描画するために使用されます。レーダーグラフを描画するときは、この関数を使用してポリゴンを描画し、ポリゴンの頂点を調整することにより異なるデータ寸法に適応できます。

基本的な構文:

 imageopenpolygon($image, $points, $num_points, $color);
  • $画像:ターゲット画像リソース。

  • $ポイント:すべての頂点座標を含む配列。

  • $ num_points :頂点の数。

  • $色:ポリゴンの色。

ステップ1:画像を初期化します

まず、画像リソースを作成し、画像の背景色を設定する必要があります。

 <?php
// aを作成します 500x500 空白の画像
$image = imagecreatetruecolor(500, 500);

// 背景色を白に設定します
$bgColor = imagecolorallocate($image, 255, 255, 255);  // RGB (255, 255, 255) 白を表します
imagefill($image, 0, 0, $bgColor);
?>

ステップ2:レーダーマップの中心と半径を設定します

レーダーグラフの中心点はグラフの中心であり、各寸法のデータポイントは、その値に基づいて中心からの距離を決定します。グラフを6つの寸法に分割し、半径を200に設定するとします。

 <?php
// レーダーマップセンター座標
$centerX = 250;
$centerY = 250;
$radius = 200;
?>

ステップ3:各ディメンションのデータポイントを計算します

各ディメンションのデータポイントの座標を計算する必要があります。これらの座標は、ポリゴンの頂点を決定します。

 <?php
// あると仮定します 6 各次元のデータ
$data = [80, 70, 90, 60, 85, 75];  // 每各次元のデータ值 (範囲:0 - 100)

// 将每各次元のデータ映射到半径
$points = [];
$numPoints = count($data);

for ($i = 0; $i < $numPoints; $i++) {
    // 角度を計算します
    $angle = (2 * M_PI * $i) / $numPoints;
    
    // 各データポイントの座標を計算します
    $x = $centerX + cos($angle) * ($radius * $data[$i] / 100);
    $y = $centerY + sin($angle) * ($radius * $data[$i] / 100);
    
    // 頂点座標を保存します
    $points[] = $x;
    $points[] = $y;
}
?>

ステップ4:レーダー図を描きます

次に、 ImageOpenPolygon()関数を使用してポリゴンを描画し、これらの頂点を結合します。

 <?php
// ポリゴンの色を青に設定します
$polygonColor = imagecolorallocate($image, 0, 0, 255);

// レーダー図のポリゴンを描く
imageopenpolygon($image, $points, $numPoints, $polygonColor);
?>

ステップ5:画像を出力します

最後に、生成された画像を出力します。

 <?php
// 出力画像はです PNG 形式
header('Content-Type: image/png');
imagepng($image);

// 画像リソースを破壊します
imagedestroy($image);
?>

3。完全なコード

上記のコードスニペットを組み合わせると、最終コードは次のとおりです。

 <?php
// 画像リソースを作成します
$image = imagecreatetruecolor(500, 500);

// 背景色を設定します
$bgColor = imagecolorallocate($image, 255, 255, 255);  // RGB (255, 255, 255) 白を表します
imagefill($image, 0, 0, $bgColor);

// レーダーマップセンター座標和半径
$centerX = 250;
$centerY = 250;
$radius = 200;

// データ
$data = [80, 70, 90, 60, 85, 75];  // 每各次元のデータ值 (範囲:0 - 100)

// 计算データ点坐标
$points = [];
$numPoints = count($data);

for ($i = 0; $i < $numPoints; $i++) {
    $angle = (2 * M_PI * $i) / $numPoints;
    $x = $centerX + cos($angle) * ($radius * $data[$i] / 100);
    $y = $centerY + sin($angle) * ($radius * $data[$i] / 100);
    $points[] = $x;
    $points[] = $y;
}

// 色を設定します
$polygonColor = imagecolorallocate($image, 0, 0, 255);

// ポリゴンを描きます
imageopenpolygon($image, $points, $numPoints, $polygonColor);

// 出力画像
header('Content-Type: image/png');
imagepng($image);

// 無料のリソース
imagedestroy($image);
?>

4。結論

PHPのImageOpenPolygon()関数を介して、レーダーグラフを簡単にシミュレートして描画することができ、多次元データの表示を改善できます。実際のアプリケーションでは、ニーズに応じて寸法、色、データマッピングの数を調整して、より複雑なレーダーマップを作成できます。