从 Python 3.6 Zelle Graphics 中的另一个函数调用 circle 函数
Calling circle function from another function in Python 3.6 Zelle Graphics
我已经查看了此处有关圆圈和 python 以及调用函数的所有问题,但没有任何帮助。我也不能使用乌龟,所以请不要建议。谢谢!
我正在尝试创建一个程序来绘制具有不同颜色和半径的同心圆(以制作 target-like 图像),但是需要从 main() 调用 drawCircle 函数并且它必须具有具体参数。我可以 运行 这些功能分开,但不能一起。图形 window 显示了标题和设置的背景颜色,但没有圆圈。我调用 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)
您已将 window 的坐标重新定义为从 -6 到 6,然后在 300, 300 处绘制一个圆 -- 将其放在 window 之外。把上面那行注释掉,看看结果好多少。
您的 for i in range(6):
循环也有问题,因为它不断重绘相同的东西。您的 W
、Bk
等作业也是如此,因为 drawCircle()
没有 return 任何东西。
如果你真的想使用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()
我已经查看了此处有关圆圈和 python 以及调用函数的所有问题,但没有任何帮助。我也不能使用乌龟,所以请不要建议。谢谢!
我正在尝试创建一个程序来绘制具有不同颜色和半径的同心圆(以制作 target-like 图像),但是需要从 main() 调用 drawCircle 函数并且它必须具有具体参数。我可以 运行 这些功能分开,但不能一起。图形 window 显示了标题和设置的背景颜色,但没有圆圈。我调用 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)
您已将 window 的坐标重新定义为从 -6 到 6,然后在 300, 300 处绘制一个圆 -- 将其放在 window 之外。把上面那行注释掉,看看结果好多少。
您的 for i in range(6):
循环也有问题,因为它不断重绘相同的东西。您的 W
、Bk
等作业也是如此,因为 drawCircle()
没有 return 任何东西。
如果你真的想使用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()