以下是一种解决方法,使用简单的数学计算来检测两个圆是否碰撞。
import math
def check_collision(circle1, circle2):
# 计算两个圆心之间的距离
distance = math.sqrt((circle2[0] - circle1[0]) ** 2 + (circle2[1] - circle1[1]) ** 2)
# 如果两个圆心之间的距离小于两个圆的半径之和,则发生碰撞
if distance < circle1[2] + circle2[2]:
return True
else:
return False
# 测试示例
circle1 = (0, 0, 3) # 圆心坐标为(0, 0),半径为3
circle2 = (4, 0, 3) # 圆心坐标为(4, 0),半径为3
if check_collision(circle1, circle2):
print("两个圆碰撞了")
else:
print("两个圆没有碰撞")
上述代码中,check_collision
函数接受两个圆的参数,每个圆由圆心坐标和半径组成。函数通过计算两个圆心之间的距离,如果距离小于两个圆的半径之和,则返回True
表示发生碰撞,否则返回False
表示没有碰撞。最后,我们可以通过调用check_collision
函数来检测两个圆是否碰撞,并根据返回值输出相应的结果。
上一篇:不使用画布来获取按钮点击事件