簡體   English   中英

從Python 3.6 Zelle Graphics中的另一個函數調用circle函數

[英]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):也是有問題的,因為它不斷重繪同一件事。 WBk等的分配一樣,因為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM