MSペイントのようなアプリを構築するものを探しています。
3 に答える
OpenGL は 3D アプリケーションを作成するためのものです。ペイント プログラムのようなピクセル ベースのものに使用すると、作業が非常に難しくなります。
私が想像できる最も近いのは、楕円のピクセルをテクスチャ サーフェスにペイントし、それをスプライトとして表示することです。恒等変換を常に設定していることを確認してください。そうしないと、結果がぼやけて見える場合があります。
あなたの場合のOpenGlの良い代替案はSDLです。よりシンプルでピクセルベースです。
Bresenham の描画アルゴリズムを使用して、楕円をスキャン変換します。つまり、楕円のエッジを正しく描画して塗りつぶします。OpenGL は独自のスキャン変換を行うポリゴン ベースのグラフィックス ライブラリです。
個人的には、たとえば定期的に 0 度から 360 度までステップして、中心を最初の点とし、計算された点を残りの点として GL_FAN を描画するなどして、ポリゴンの端を囲むいくつかの点を計算します (0 度の点を再度含めます)。最後に)。
これは完全に正確というわけではありませんが、ほとんどの目的で適切かつ高速です。
楕円が大きい場合は、より洗練されてより多くのエッジ ポイントを生成でき、精度が向上します。
ここで疑似コードを実装することになりました。かなりうまくいきました。