2017-04-11 35 views
0

我已經瀏覽了所有關於圓和python以及調用函數的問題,但沒有任何幫助。我也不能使用烏龜,所以請不要暗示。謝謝!從Python 3.6中的另一個函數調用循環函數Zelle Graphics

我想創建一個程序,用不同的顏色和半徑繪製同心圓(製作一個類似目標的圖像),但drawCircle函數需要從main()調用,它必須具有特定的參數。我可以單獨運行這些功能,但不能一起運行。圖形窗口顯示標題和設置背景顏色,但沒有顯示圓圈。在我調用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() 

回答

0

這條線是你的問題:

win.setCoords(-6, -6, 6, 6) 

你重新定義窗口的座標去從-6到6,然後在300畫了一個圈,300 - 把它窗外。註釋掉上面的內容,看看結果會有多好。

你的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() 
相關問題