2017-04-11 11 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

この行はあなたの問題です:あなたは、300から-6 6に行き、その後、300で円を描くように、ウィンドウの座標を再定義しました

win.setCoords(-6, -6, 6, 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() 
関連する問題