2011-02-28 102 views
3

我可以用算法繪製一個圓。然而,邊界看起來很奇怪,像素看起來彼此獨立。我希望他們更接近。我試圖增大點的大小。但結果並不好。所以,我想如果我能完全填充像素會更好(我想它是方形的)。我該怎麼做,或者你有什麼更好的主意? 現在看起來像這樣: http://img690.imageshack.us/i/circlev.jpg/使用OpenGL的Bresenham算法繪製圓

非常感謝您提前。

+0

嘗試繪製更多點? – Goz

+1

爲什麼要用OpenGL重新實現Bresenham? OpenGL已經爲您提供了一個線性原語。 – datenwolf

+1

@datenwolf,這是一個介紹性的計算機圖形學課程中的經典作業問題。 –

回答

0

使用sin/cos方法,然後您可以從一個點繪製線條到另一個點,它也允許您更改多邊形細節,更不用說更容易填充圓圈了(從三角形繪製中間到邊緣)。

如果使用更高的細節,其結果將是幾乎相同布氏。

+1

-1:OP很可能需要專門使用Bresenham的算法,因爲有類需求。所以這並沒有真正回答這個問題。 – Omnifarious

2

你JPEG來看,我不知道,如果你認爲什麼是世界空間中的一個像素,其實並非如此。也許你的投影矩陣並不完全符合你的想法。

是否啓用GL_POINT_SMOOTH? - 這可能會讓事情變得糟糕。那些像素看起來很奇怪。

假設採用這種算法是對你很重要(和你不感興趣,可能是更有效的方法),你可以畫一個四對每個「像素」,而不是使用GL_POINTS。

5

沒有代碼,就很難診斷問題。像素的實際佈局對於該算法看起來是正確的。不過,您似乎在使用不直接將世界空間轉換爲屏幕空間的投影矩陣。

嘗試使用正投影在那裏你可以保證一個世界偏移座標值得正好一個像素的屏幕空間。