PHPのimagearc()関数の使い方を徹底解説!弧の描画方法と実例コード
imagearc() 関数は、PHPのGDライブラリに含まれる描画関数の一つで、画像上に弧(アーク)を描画するために使用されます。開始角度と終了角度を指定することで、円の一部だけでなく、0度から360度まで指定すれば完全な円や楕円を描くことも可能です。
構文
imagearc( $img, $cx, $cy, $width, $height, $start, $end, $color )
パラメータ
$img: 描画対象となる画像リソース。
imagecreatetruecolor()などで事前に作成しておきます。$cx: 弧の中心の x 座標。
$cy: 弧の中心の y 座標。
$width: 弧の幅。
$height: 弧の高さ。
$start: 弧の開始角度(単位:度)。0度は右方向(3時の位置)を基準とし、時計回りに増加します。
$end: 弧の終了角度(単位:度)。
$color: 描画に使用する色。
imagecolorallocate()で作成したカラーリソースを指定します。
戻り値
imagearc() 関数は、描画が成功した場合に TRUE を、失敗した場合に FALSE を返します。
使用例1:基本的な弧の描画
以下は、imagearc() 関数を使って弧を描画する基本的な例です。
<?php
$img = imagecreatetruecolor(200, 200);
$one = imagecolorallocate($img, 100, 50, 255);
$two = imagecolorallocate($img, 30, 255, 150);
imagearc($img, 100, 100, 200, 200, 0, 360, $one);
imagearc($img, 130, 50, 100, 150, 25, 155, $two);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
出力結果
このコードを実行すると、次のような画像が出力されます。

この例では、まず imagecreatetruecolor() で200×200ピクセルのキャンバスを作成し、imagecolorallocate() で2種類の色を定義しています。1つ目の imagearc() の呼び出しでは開始角度0度・終了角度360度を指定しているため、完全な円が描画されます。2つ目の呼び出しでは25度から155度までの弧が描かれます。
使用例2:座標と角度を変えた描画
次に、中心座標や幅・高さ、角度を変えて弧を描画する別の例を見てみましょう。
<?php
$img = imagecreatetruecolor(250, 250);
$one = imagecolorallocate($img, 100, 90, 255);
$two = imagecolorallocate($img, 100, 255, 190);
imagearc($img, 130, 100, 200, 200, 0, 360, $one);
imagearc($img, 140, 50, 140, 150, 95, 155, $two);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
出力結果
このコードを実行すると、次のような画像が出力されます。

このように、$cx や $cy で中心位置を移動させたり、$start と $end の角度を調整したりすることで、さまざまな形状の弧を自由に描き分けることができます。
まとめ
imagearc() 関数を使えば、PHPだけで動的に円や弧を含む画像を生成できます。グラフや図形の描画など、画像処理を行う場面で非常に便利な関数ですので、パラメータの意味をしっかり理解して活用しましょう。
-
PHPのimagefilledrectangle()関数の使い方 – 塗りつぶし矩形を描画する方法
PHPのimagefilledrectangle()関数は、指定した座標をもとに、色で塗りつぶされた矩形(長方形)を画像上に描画するためのGDライブラリ関数です。図形の作成やグラフィック処理などでよく利用されます。構文imagefilledrectangle( $img, $x1, $y1, $x2, $y2, $color )パラメータimgimagecreatetruecolor() などで作成した画像リソースを指定します。x1矩形の1つ目の頂点(始点)のX座標を指定します。y1矩形の1つ目の頂点(始点)のY座標を指定します。x2矩形の2つ目の頂点(対角の終点)のX座標を指定します。y2矩
-
PHPのimagefilledellipse()関数とは?塗りつぶし楕円の描画方法を解説
PHPのimagefilledellipse()関数は、指定した座標を中心として塗りつぶしのある楕円を描画するために使用されるGDライブラリの関数です。図形描画や画像生成を行う際に非常に便利な関数の一つです。 構文 imagefilledellipse( $img, $cx, $cy, $width, $height, $color ) パラメータ img:imagecreatetruecolor()関数などで作成した画像リソースを指定します。この画像に対して楕円が描画されます。 cx:楕円の中心のX座標(横方向の位置)を指定します。 cy:楕円の中心のY座標(縦方向の位置)を指定します。