【发布时间】:2019-03-11 23:58:17
【问题描述】:
我需要一种方法来遍历围绕给定坐标形成一个圆圈的所有坐标。 例如(看图),如果我给出灰色瓦片的坐标和半径 9,我需要得到所有红色瓦片的坐标。
这有点像 Bresenham 的圆算法,但我还真没看懂。
就我而言,我将使用它来擦除图块集中的圆形孔。 提前致谢!
【问题讨论】:
-
如果你将每个图块映射到 x,y(Bitmap) 那么你可以遍历它们并查看它们是否在给定的 Circle(Center, Radius) 内...
-
一种天真的方法是遍历方形边界框并检查从点到中心的距离是否低于您的半径。如果没有,什么也不做。
-
您可以使用圆形论坛:mathwarehouse.com/geometry/circle/equation-of-a-circle.php 然后遍历像素并插入坐标。如果答案小于半径的平方,则像素在圆中。这避免了距离计算中常见的 sqrt()。 sqrt() 是一个昂贵的操作(相对而言)。