用pythin语言写出以下程序:平面上有四个圆,原心分别为(2,2) (-2,2)(-2,-2)(2,-2),圆半径为1。今输入人一点的坐标,判断该点是否在这四个圆中,如在则给出是在哪一个圆中
时间: 2024-10-28 15:13:13 浏览: 4
你可以使用Python编写一个函数来实现这个功能。首先,你需要导入数学库`math`以便使用欧几里得距离公式计算两点之间的距离。然后,创建一个函数`is_point_in_circle(point, centers)`,接收一个点的坐标和圆心列表作为参数。对于每个圆心,计算它到给定点的距离,如果小于等于半径加一(考虑到浮点数精度误差),那么说明点在这个圆内。最后,返回对应圆心的位置。
以下是完整的代码示例:
```python
import math
def euclidean_distance(p1, p2):
return math.sqrt((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2)
def is_point_in_circle(point, circle_centers):
for i, center in enumerate(circle_centers):
radius = 1
distance = euclidean_distance(point, center)
if distance <= radius + 1e-6: # 考虑浮点数误差,添加一个小数避免精确比较导致错误
return f"点({point[0]}, {point[1]})在第{i+1}个圆({center[0]}, {center[1]})内"
return "点不在任何一个圆内"
# 测试用例
points_of_interest = [(5, 5), (-3, 4), (2, -2), (-2, -2)]
for point in points_of_interest:
print(is_point_in_circle(point, [(-2, 2), (2, 2), (-2, -2), (2, -2)]))
```
当你运行这段代码,会分别打印出每个测试点是否在哪个圆内,以及对应的圆心坐标。
阅读全文