【发布时间】:2016-02-28 14:21:30
【问题描述】:
我需要使用 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()
此代码只是让您决定中心的位置,但只有一个环尺寸。
【问题讨论】:
-
所以您希望在第一次点击之后的每一次点击都确定下一个圆圈的大小?
-
如果你问“如果我只知道圆心的坐标和圆周上的一个点,我如何找到圆的半径?”,这是它们之间的距离,由下式确定毕达哥拉斯公式。
-
程序只能接受两次点击,中心和内圆圆周上的一个点。一旦你得到这两次点击,那么我们需要找到内圆的半径。然后所有其余环的宽度都等于内圆的半径。当我所拥有的只是第一次和第二次点击的绳索时,我基本上需要找出如何在 'y=circle(center,x)' 中评估 x。
标签: python user-interface python-3.x graphics