現在の位置: ホーム> 最新記事一覧> ImageOpenPolygon()数学的視覚化チャートに使用する方法(ポリゴン図など)

ImageOpenPolygon()数学的視覚化チャートに使用する方法(ポリゴン図など)

M66 2025-05-29

PHPでは、 ImageOpenPolygon()は非常に実用的な画像描画機能であり、特に単純な幾何学的図形、複雑なフラクタル構造、動的チャートの生成など、数学のポリゴン構造を視覚化するのに適しています。この記事では、ImageOpenPolygon()を使用してポリゴンを描画し、実際のケースを組み合わせてアプリケーションシナリオを理解する方法を詳細に説明します。

1。ImageOpenPolygon ()とは何ですか?

ImageOpenPolygon()は、PHP GDライブラリの関数であり、開いている(つまり、非閉じられていない)ポリゴン線を描画します。 ImagePolygon()とは異なり、 ImageOpenPolygon()は最初と最後のポイントを自動的に接続しないため、閉鎖されていないポリラインチャートを描画するのに適しています。

基本的な関数形式は次のとおりです。

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)
  • $画像:GD画像リソース。

  • $ポイント:ポイントの配列(x1、y1、x2、y2、...、xn、yn)。

  • $ num_points :ポイント数。

  • $ color :色識別子( imageColorAllocate()によって作成)。

2。ImageOpenPolygon ()の使用方法は?

(1)基本的な画像を作成し、ポリゴンを描きます

ペンタゴンのオープンポリラインを描く簡単な例を次に示します。

 <?php
// キャンバスを作成します
$image = imagecreatetruecolor(400, 400);

// 色を割り当てます
$white = imagecolorallocate($image, 255, 255, 255);
$blue = imagecolorallocate($image, 0, 0, 255);

// 背景を埋めます
imagefill($image, 0, 0, $white);

// ポリゴンの頂点を定義します (五gram星,閉じていない)
$points = [
    200, 50,   // 頂点1
    350, 150,  // 頂点2
    300, 300,  // 頂点3
    100, 300,  // 頂点4
    50, 150    // 頂点5
];

// 開いたポリゴンを描きます
imageopenpolygon($image, $points, 5, $blue);

// ブラウザへの出力
header('Content-Type: image/png');
imagepng($image);

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

上記のコードを実行すると、5つの青いセグメントで構成されているが閉鎖されていないペンタゴンが表示されます。

(2)画像をサーバーに保存します

画像を直接出力する代わりにファイルとして保存する場合があります。これを行うことができます。

 <?php
$image = imagecreatetruecolor(400, 400);
$white = imagecolorallocate($image, 255, 255, 255);
$red = imagecolorallocate($image, 255, 0, 0);
imagefill($image, 0, 0, $white);

$points = [
    100, 100,
    300, 100,
    300, 300,
    100, 300
];

imageopenpolygon($image, $points, 4, $red);

// 画像をローカルサーバーに保存します
imagepng($image, '/var/www/m66.net/uploads/openpolygon.png');

imagedestroy($image);
?>

上記のコードは、描画された開いた四辺形を/var/www/m66.net/uploads/openpolygon.pngパスを保存します。

(3)動的数式と組み合わせてポイント座標を生成する

ポリゴンの形状を数学的な式に応じて動的に変更したい場合、通常のN側を描画するなど、これを行うことができます。

 <?php
function generatePolygonPoints($centerX, $centerY, $radius, $sides) {
    $points = [];
    for ($i = 0; $i < $sides; $i++) {
        $angle = 2 * M_PI * $i / $sides;
        $x = $centerX + $radius * cos($angle);
        $y = $centerY + $radius * sin($angle);
        $points[] = $x;
        $points[] = $y;
    }
    return $points;
}

$image = imagecreatetruecolor(500, 500);
$white = imagecolorallocate($image, 255, 255, 255);
$green = imagecolorallocate($image, 0, 128, 0);
imagefill($image, 0, 0, $white);

// 動的生成 7 副業(七副業)
$points = generatePolygonPoints(250, 250, 200, 7);

imageopenpolygon($image, $points, 7, $green);

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

このようにして、 $サイドの値を変更するだけで、任意の数の側面のポリゴンを描くことができます。これは、数学チャートの動的な表示に非常に適しています。

3。注意すべきこと

  • ImageOpenPolygon()では、PHPがGDライブラリをインストールして有効にしたことを確認するためにGD拡張サポートが必要です。

  • ポイント配列の長さは2 *ポイントである必要があります。そうしないと、エラーが発生します。

  • ポリゴンを閉じる必要がある場合は、ImageOpenPolygon ()の代わりにImagePolygon ()を使用します。

  • ファイルを保存するときは、サーバー上のディレクトリ/var/www/m66.net/uploads/が既に存在し、許可を書き込むことを確認してください。

4。概要

ImageOpenPolygon()を使用すると、PHPの数学的グラフィックを簡単に視覚化できます。基本的なグラフィックスの描画に適しているだけでなく、数学的な式と組み合わせて、豊富な動的ディスプレイ効果を実現することもできます。マスターすると、PHP画像処理とデータ視覚化機能を次のレベルに引き上げることができます!