[英]Calling circle function from another function in Python 3.6 Zelle Graphics
我已经仔细研究了与圈子和python有关的所有问题以及调用函数,没有任何帮助。 我也不能使用乌龟,所以请不要这样做。 谢谢!
我正在尝试创建一个程序来绘制具有不同颜色和半径的同心圆(以生成类似目标的图像),但是需要从main()调用drawCircle函数,并且必须具有特定的参数。 我可以单独运行这些功能,但不能一起运行。 图形窗口显示标题和设置的背景颜色,但没有圆圈。 我调用drawCircle函数的方式是否有错误?
from graphics import *
def drawCircle(win,centerPoint,radius,color):
circ = Circle(centerPoint,radius)
circ.setFill(color)
circ.setOutline(color)
circ.draw(win)
def main():
win = GraphWin("Target", 600, 600)
win.setCoords(-6,-6,6,6)
win.setBackground("brown")
centerPoint = Point(300, 300)
for i in range(6):
W = drawCircle(win,centerPoint,250,"white")
Bk = drawCircle(win,centerPoint,200,"black")
Bl = drawCircle(win,centerPoint,150,"dark blue")
R = drawCircle(win,centerPoint,100,"dark red")
Y = drawCircle(win,centerPoint,50,"yellow")
win.getMouse()
win.close()
main()
这行是你的问题:
win.setCoords(-6, -6, 6, 6)
您已将窗口的坐标重新定义为从-6到6,然后在300、300处绘制一个圆-将其置于窗口外。 注释掉上面的行,看看结果有多好。
您for i in range(6):
循环中的for i in range(6):
也是有问题的,因为它不断重绘同一件事。 与W
, Bk
等的分配一样,因为drawCircle()
不返回任何内容。
如果您确实想使用win.setCoords(-6, -6, 6, 6)
,这是合理的,那么您需要相应地调整所有其他坐标:
from graphics import *
def drawCircle(win, centerPoint, radius, color):
circ = Circle(centerPoint, radius)
circ.setFill(color)
circ.setOutline(color)
circ.draw(win)
def main():
win = GraphWin("Target", 600, 600)
win.setCoords(-6, -6, 6, 6)
win.setBackground("brown")
centerPoint = Point(0, 0)
drawCircle(win, centerPoint, 5, "white")
drawCircle(win, centerPoint, 4, "black")
drawCircle(win, centerPoint, 3, "dark blue")
drawCircle(win, centerPoint, 2, "dark red")
drawCircle(win, centerPoint, 1, "yellow")
win.getMouse()
win.close()
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.