PHPのImageFilledArcで扇形を描く

PHPで扇形を描くにはImageFilledArcという関数を使います。
次は公式のドキュメントです。

ImageFilledArc — 楕円弧を描画し、塗りつぶす
説明
bool ImageFilledArc($image, $cx, $cy, $width, $height, $start, $end, $color, $style)
指定したimageの指定した座標を中心とする、楕円弧を描画します。
パラメータ
image : ImageCreateTrueColor()のような画像作成関数が返す画像リソース。
cx : 中心のx座標。
cy : 中心のy座標。
width : 弧の幅。
height : 弧の高さ。
start : 弧の開始角度。
end : 弧の終了角度。0°は三時の方向で、そこから時計回りに数えます。
color : ImageColorAllocate()で作成した色ID。
style : 次の選択肢のビット和。IMG_ARC_PIE, IMG_ARC_CHORD, IMG_ARC_NOFILL, IMG_ARC_EDGED / IMG_ARC_PIEおよびIMG_ARC_CHORDは相反します。IMG_ARC_CHORDは、開始角と終了角を直線で結ぶだけですが、IMG_ARC_PIEは、角を丸めます。IMG_ARC_NOFILLは、弧と弦が縁どられ塗りつぶされないことを指定します。IMG_ARC_EDGEDは、IMG_ARC_NOFILLと共に指定することにより、開始角と終端角は中心と結ばれます。これは、(塗りつぶすよりも)「パイの切れ端」を縁どる良い方法です。

「楕円弧」という耳慣れない言葉が使われているので分かりにくいのだと思います。
ImageFilledArcは要するに「扇形」を描画する関数です。真円だけでなく楕円にも対応しています。単なる扇形だけではなく、扇形の特定の部分だけを描画できます。

cs, cy
扇形を円の一部と考えたときの中心の座標です。

width, height
「弧の幅、高さ」とありますが、円ならば直径に該当します。

start, end
角度です。0度から360度で指定します。ラジアンではありません。時計の3時が0度、6時が90度、9時が180度、12時が270度です。
startが0度、endが280度の場合は次のようになります。
0-280

style
いわゆる扇形にする場合は、IMG_ARC_PIEを指定します。「角を丸めます」とありますが、外側の円弧の部分を描くという意味です。
IMG_ARC_PIE

IMG_ARC_CHORDを指定すると、円弧の部分を描かず、二等辺三角形になります。
IMG_ARC_CHORD

IMG_ARC_NOFILLは、円弧の線だけになります。塗りつぶされません。
IMG_ARC_NOFILL

IMG_ARC_EDGEDは、IMG_ARC_PIEと同じく扇形になります。
IMG_ARC_EDGED

「IMG_ARC_CHORD+IMG_ARC_NOFILL」とすると「弦」の線だけになります。
IMG_ARC_CHORD+IMG_ARC_NOFILL

「IMG_ARC_NOFILL+IMG_ARC_EDGED」とすると縁だけの扇形になります。
IMG_ARC_NOFILL+IMG_ARC_EDGED

コメント

  1. Leonardo より:

    I miei complimenti per la pagina web per ImageFilledArc.
    http://stabucky.com/wp/archives/4889
    Dopo molte ricerche Internet per capirne il funzionamento ho trovato la tua pagina.
    In questa pagina sono scritte maniera chiara e sintetica le istruzioni per ImageFilledArc.
    Un esempio di come dovrebbero essere scritte le pagine che insegnano “come usare” una qualsiasi istruzione, anche non solo di informatica.

  2. stabucky より:

    Grazie.
    Non lo so italiano.
    Mi dispiace.

タイトルとURLをコピーしました