2

アルゴリズムで円を描くことができます。ただし、境界は奇妙に見え、ピクセルは互いに離れているように見えます。もっと近くにいてほしい。ポイントサイズを大きくしてみました。しかし、結果はあまり良くありません。それで、ピクセルを完全に埋めることができればもっと良いのではないかと考えていました.(正方形だと思います.)どうすればいいですか?現在は次のようになっています。

http://img690.imageshack.us/i/circlev.jpg/

4

3 に答える 3

5

コードがなければ、問題を診断するのは困難です。ピクセルの実際のレイアウトは、そのアルゴリズムに対して正しく見えます。ただし、ワールド空間をスクリーン空間に直接変換しない射影行列を使用しているようです。

ワールド座標の 1 つのオフセットが画面空間のちょうど 1 ピクセルに相当することを保証できる正投影を使用してみてください。

于 2011-02-28T14:58:49.337 に答える
2

あなたのjpegから判断すると、あなたが世界空間で1ピクセルだと思っているのは、実際にはそうではないのではないかと思います。おそらく、あなたの射影行列はあなたが思っていることを完全に行っていません。

GL_POINT_SMOOTHは有効になっていますか?-これが物事を台無しにしている可能性があります。それらのピクセルは奇妙に丸く見えます。

このアルゴリズムを使用することが重要であると仮定すると(そして、より効率的な方法には興味がない場合)、GL_POINTSを使用する代わりに、「ピクセル」ごとにクワッドを描画できます。

于 2011-02-28T14:28:06.140 に答える
0

sin/cos メソッドを使用すると、ある点から別の点に線を引くことができます。また、ポリゴンの詳細を変更することもできます。また、円を塗りつぶすのがはるかに簡単になることは言うまでもありません (中央から端まで三角形を描きます)。

ディテールを高くすると、ブレゼンハムとほぼ同じ結果になります。

于 2011-02-28T14:14:40.740 に答える