如何更改中点圆算法以获取起始角和结束角?
How to change the Midpoint circle algorithm in order to take a Starting angle and ending Angle?
我看了很多地方,但没有找到任何资源(据我所知)来解释如何将标准中点圆算法(使用八分圆创建整个圆)转变为仅考虑特定 'slice' 的圈子。我正在使用它来查找视线半径内的瓷砖。
我使用的代码是关于如何实现算法的基本维基百科代码。
我在 "Processing" 中使用 java 来制作原型。
我想了解这个算法是如何工作的,所以我可以修改它,但我遇到了麻烦。
如果您正在光栅化的点落在您指定的角度(点)范围内,则可以使用条件扩展中点算法或 Bresenham 算法。要获得范围,您必须找到圆上的起点和终点。这可以在极坐标的帮助下轻松完成。如果我们有一个半径 r
、角度 theta
和圆心 C(x0,y0)
的圆,圆上的点可以计算为 pCircle(x,y) = (x0 + r * cos theta, y0 + r * sin theta)
。请注意,角度以弧度为单位。
我看了很多地方,但没有找到任何资源(据我所知)来解释如何将标准中点圆算法(使用八分圆创建整个圆)转变为仅考虑特定 'slice' 的圈子。我正在使用它来查找视线半径内的瓷砖。
我使用的代码是关于如何实现算法的基本维基百科代码。
我在 "Processing" 中使用 java 来制作原型。
我想了解这个算法是如何工作的,所以我可以修改它,但我遇到了麻烦。
如果您正在光栅化的点落在您指定的角度(点)范围内,则可以使用条件扩展中点算法或 Bresenham 算法。要获得范围,您必须找到圆上的起点和终点。这可以在极坐标的帮助下轻松完成。如果我们有一个半径 r
、角度 theta
和圆心 C(x0,y0)
的圆,圆上的点可以计算为 pCircle(x,y) = (x0 + r * cos theta, y0 + r * sin theta)
。请注意,角度以弧度为单位。