2017-05-01 24 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! –