2016-04-06 64 views
0

ですがSDL2点線を描画する方法

それはとても難しいです博ウェブ上で絶対に何も見つからなかっ
int drawDottedLine(SDL_Renderer *renderer,Sint16 x1,Sint16 y1, Sint16 x2, Sint16 y2, int r, int g, int b, int a); 

ようSDL2(またはGFXで)を使用して簡単な点線を描画するだけで可能ですか?

+1

SDLにはその機能が組み込まれているとは思えません。自分で実装する必要があります。 – Henningsson

答えて

0

あなたは単にそれを自分で実装することができます... 「Bresenhamアルゴリズム」をチェックして線を描きます。点線の場合

、それだけで多くのフルラインですので、三角法と鉛筆と紙が:)

編集うまくいかなければならない:点線の場合は、あなたも「ブレゼンハムに使用していないがアルゴリズム "、あなたは三角法が必要です。

ところで、ダウン投票した人は、自分を説明してください。

+0

Bresenhamは浮動小数点演算を必要とするため、カスタムBresenhamアルゴリズムはtrigアプローチよりも適切だと思います。 Bresenham algoにピクセルの色を設定するポイントにカウンターを追加します。パス上の新しい座標ごとにカウンタをインクリメントします。カウンタが(5)ならばブールフラグをトグルしてカウンタをリセットします。フラグがtrueの場合にのみピクセルを描画します。 – Wossname

+0

最適化された関数を使用したい場合は、カスタムBresenhamを使用します。点線を1つ "cos"、1つの "sin"とすると、関数はほぼ終了します。 –

関連する問題