円全体を効率的に描画するために、中点円アルゴリズム (ブレセンハム円) を使用しています。円弧を描くのに似たようなものはありますか? 開始角度と終了角度を指定して、円のその部分だけを描画したいと思います。
前もって感謝します!
編集:塗りつぶされた円弧、つまりパイスライスも描きたいと思います。:)
円全体を効率的に描画するために、中点円アルゴリズム (ブレセンハム円) を使用しています。円弧を描くのに似たようなものはありますか? 開始角度と終了角度を指定して、円のその部分だけを描画したいと思います。
前もって感謝します!
編集:塗りつぶされた円弧、つまりパイスライスも描きたいと思います。:)
円弧の始点と終点を計算し、この点に到達したら終了します。たとえば、http: //en.wikipedia.org/wiki/Midpoint_circle_algorithmを参照してください。
あなたのプラットフォームには、この種の図形の描画を処理するライブラリが既にありませんか?
塗りつぶされた円のスライスを描く:
まず、パイを縦横に4等分します。パイ スライスがちょうどこれらの 4 分の 1 である場合、またはこれらの 4 分の 1 に完全に収まる場合は、次の手順を 1 回使用します。そうしないと、パイのスライスがバラバラにカットされてしまいます。これは、いくつかの非常に薄いパイの継ぎ目でも発生する可能性があります。各ピースに対して次の手順を繰り返します。
右上の 4 分の 1 に収まるパイ スライスについて説明します。他の 4 分の 1 も同様です。円弧の開始ピクセルと終了ピクセルを見つけます (これには何らかのトリガーが必要になる場合があります)。右上の 4 分の 1 にあるこのアークの「開始」ピクセルは、「終了」ピクセルの左側の 1 つ上にあると想定しています。そうでない場合は、それらを交換してそうします。
ブレゼンハム サークル アルゴリズムを使用して、円のその 4 分の 1 の縁にあるすべてのピクセルを上から順に見つけます。「開始」ピクセルに到達するまで値を無視します。「アクティブ」ピクセルは、開始ピクセルから終了ピクセルまでの円の縁にあるポイントです。
ブレゼンハム ライン アルゴリズムを使用して、「左」ライン (円弧の「開始」ピクセルから始まり、円の中心に直進するライン) 上のピクセルを見つけます。
円弧の各走査線 (各 y 値) に対して、1 本の水平線を描画して、左線の左端のピクセルから円弧の右端のアクティブなピクセルまでのすべての水平ピクセルをカバーします。(1/4 円の上部付近では、同じ走査線の y 値にある縁に多くのピクセルが存在する可能性があります)
円の縁のすべてのアクティブなピクセルを処理したら、残りの三角形があれば塗りつぶします。1 つの方法: 各走査線 (各 y 値) に対して、上から下に 1 本の水平線を描画して、左線の左端のピクセルから右線の右端のピクセルまで、すべての水平ピクセルをカバーします。円の中心。(開始ピクセルがこの 1/4 円の下部近くにある場合、同じ走査線の y 値にある左の線と右の線に多くのピクセルが存在する可能性があります)。