現在の位置: ホーム> 最新記事一覧> ImageOpenPolygon()の通常のポリゴン頂点座標を計算する方法

ImageOpenPolygon()の通常のポリゴン頂点座標を計算する方法

M66 2025-05-29

PHPでは、GDライブラリを使用してグラフィックを処理することは非常に一般的な要件です。特にグラフィカルプログラミングでは、通常のポリゴンの描画は基本的な操作です。この記事では、通常のポリゴンの頂点座標を計算し、 Imageopenpolygon関数を使用して通常のポリゴンを描画する方法について説明します。

1.通常のポリゴン頂点の座標を計算します

通常のポリゴンとは、等しいエッジと角度を持つポリゴンを指します。通常のポリゴンの場合、極座標系を介して各頂点の座標を計算できます。

通常のN側を描画し、このポリゴンの中心点座標が(CX、CY)であり、半径がRであるとして、次の式を使用して各頂点の座標を計算できます。

  • 各頂点の角度間隔は360/n度です

  • kth頂点の角度は2 * pi * k / nです

  • 頂点の座標は次のとおりです。

    • x = cx + r * cos(angle)

    • y = cy + r * sin(角度)

2。PHP実装コード

PHPは、頂点座標を計算し、 Imageopenpolygon関数を使用して通常のポリゴンを描画するために使用されます。実装の完全なコードは次のとおりです。

 <?php
// 画像の幅と高さを設定します
$width = 400;
$height = 400;

// 画像リソースを作成します
$image = imagecreatetruecolor($width, $height);

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

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

// ポリゴンの中心と半径
$cx = $width / 2;
$cy = $height / 2;
$r = 100; // 半径
$n = 6; // エッジ数(通常の六角形)

// 各頂点の座標を計算します
$points = [];
for ($i = 0; $i < $n; $i++) {
    $angle = 2 * pi() * $i / $n;
    $x = $cx + $r * cos($angle);
    $y = $cy + $r * sin($angle);
    $points[] = $x;
    $points[] = $y;
}

// 使用imageopenpolygon通常のポリゴンを描く機能
imagepolygon($image, $points, $n, $polygonColor);

// ブラウザに画像を出力します
header('Content-Type: image/png');
imagepng($image);

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

3。コード分析

  1. 画像の作成と背景設定:最初に、幅と高さ400x400の画像がImageCreateTrueColor関数を介して作成されます。次に、 ImageColorAllocateを使用して背景色を白に設定します。

  2. 頂点座標計算:上記の式に基づいて、通常のポリゴンの各頂点の座標を計算します。 COSおよびSIN関数を介して各頂点のxおよびy座標を計算し、配列$ポイントにこれらの座標を保存します。

  3. 通常のポリゴンを描く画像ポリゴン関数は、すべての頂点座標を含む配列を取り、これらの座標に基づいてポリゴンを描画します。

  4. 出力画像ImagePngを使用して画像をブラウザに出力し、最後にブラウザで描画された通常のポリゴンを表示します。

4。概要

上記の手順を通じて、通常のポリゴンの頂点座標を正常に計算し、PHPのImagePolygon関数を使用して通常のポリゴンを描画します。この方法は、通常のポリゴンに拡張でき、エッジNと半径rの数を調整するだけで、さまざまなサイズと形状のポリゴンを描画できます。