我需要使用Python创建一个带有五个环(黄色,红色,蓝色,黑色,白色)的射箭目标
需要先点击鼠标才能选择中心环应该去的位置。
第二次鼠标点击将指示内圈圆周上的某处。
剩余的戒指(红色,蓝色,黑色,白色)宽度需要与内圆半径相同。
我无法弄清楚如何从第二次鼠标点击获取信息并将其提供给内圈以找到它的半径。
from graphics import *
def main():
win = GraphWin('Archery Target',300,300)
center = win.getMouse()
w = Circle(center, 100)
w.setFill('white')
w.draw(win)
bl = Circle(center, 80)
bl.setFill('black')
bl.draw(win)
b = Circle(center, 60)
b.setFill('blue')
b.draw(win)
r = Circle(center, 40)
r.setFill('red')
r.draw(win)
y = Circle(center, 20)
y.setFill('yellow')
y.draw(win)
win.getMouse() # pause for click in window
win.close()
main()
此代码只是让您决定放置中心的位置,但只有一个铃声大小。
答案 0 :(得分:0)
假设您加载的graphics
模块是John Zelle(找到例如 here),您需要的是另一个点
point = win.getMouse()
然后,正如@Kevin建议的那样,毕达哥拉斯公式计算你的点之间的距离(需要from math import sqrt
)
dx = point.getX() - center.getX()
dy = point.getY() - center.getY()
radius = sqrt(dx*dx + dy*dy)
然后,您可以使用radius
绘制圈子。
如果这不能解决您的问题,请提供更多详细信息。