Python:检查坐标是否在圆内

9

可能重复:
如何让Turtle识别圆形?

enter image description here我有一个绘制几个圆的函数,我要在它们内部放置点。取决于点是否落在圆内,颜色是否会改变。

我发现最大的问题是如何检查点是否在圆内。有没有人知道如何计算圆内坐标,或者是否有一种方法可以将坐标与圆形进行比较?


这是一份作业吗?它看起来非常类似于这个问题:http://stackoverflow.com/questions/12049536/how-can-i-make-turtle-recognize-a-circle - zenpoy
3个回答

15

对于一个以中心点为(x,y),半径为r的圆,一个点(x1, y1)在这个圆内当且仅当

(x1-x)² + (y1-y)² <= r²

2
+1,这个公式比我的更优雅,而且计算速度更快,因为你可以缓存r²。 - Fred Foo

10
  1. Compute (Euclidean) distance to the circle's center,

    sqrt((x - center_x) ** 2 + (y - center_y) ** 2)
    
  2. Check whether the result is less than the radius.


我们尝试过这个,但由于某些原因它在Y轴上太低了。我已经附上了一张图片。 - MichaelH
@MichaelH:这是那个方法。你的代码一定有bug,可能是一个舍入误差。 - Fred Foo

1

要检查一个坐标是否在圆上,您可以使用圆的方程式

a² + b² = r²

因此,要检查该点是否在圆内:

a² + b² <= r²

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接