2017-05-01 31 views
0

我看了很多地方,並沒有找到任何資源(我明白)解釋如何將標準的中點圓算法(使用八分圓來創建整個圓)變成只考慮特定的「切片」圈。我正在使用它來查找視線半徑內的瓦片。如何更改中點圓算法以獲取起始角度和結束角度?

我正在使用的代碼是如何實現算法的基本維基百科代碼。

我正在使用內部的「處理」Java原型的東西了。

我想知道這個算法是如何工作的,所以我可以修改它,但我遇到了麻煩。

回答

0

如果柵格化點落入由角度(點)指定的範圍內,則可以使用條件擴展中點算法或Bresenham算法。要獲得範圍,您必須在圓上找到起點和終點。這可以在極座標的幫助下輕鬆完成。如果我們有一個半徑爲r,角度爲theta和中心爲C(x0,y0)的圓,圓上的點可以計算爲pCircle(x,y) = (x0 + r * cos theta, y0 + r * sin theta)。請注意,角度以弧度表示。

+0

謝謝,我熟悉三角和極座標系。進一步研究後,我發現了一些能夠證明你所描述的內容。 對於那些遇到同樣問題的人來說,這是一個將其付諸實踐的鏈接。 http://answers.google.com/answers/threadview/id/769733.html 謝謝你Croolman! –