2016-09-28 5 views
0

これはジョンZelleのgraphics.pyを使ってPython 3.5.2のためのコードの問題である:Zelleグラフィックスでプロットを取り消す方法は?

私はここで答えを探して時間の良い量を費やしているが、ちょうどそれを把握することはできません。関数undraw()は、getMouse()のように存在します。しかし、それはplot()コマンドでは機能しないようですが、draw()コマンドだけはそうです。私は間違って何をしていますか?そして、ウィンドウを開いたままにするにはどうすればよいですか?次のものが描画される前に、前のプロットを消去しますか? graphicsの機能のための

PDFドキュメント:

        http://mcsp.wartburg.edu/zelle/python/graphics/graphics.pdf

win = GraphWin("Plot",500,500) # Creates a window 

for m in range(0,j): # Loop for each function 
    # Randomizes a color for each function 
    color = random.choice(['red','black','green','yellow','pink','blue']) 
    for h in range(0,t): # Loop for each pair of values "x,y" 
     # Find points and plot each point in win 
     win.plot(axis[h],points[m][h],color) 
    win.getMouse() # Pause before clicking 
    win.undraw() # AttributeError: 'GraphWin' object has no attribute 'undraw' 
+1

ない十分な情報を:

しかし、土台は、それが描画オブジェクトを追跡しTkinterのであり、GraphWinは、キャンバスのサブクラスであるので、あなたが行うことができます。次のようなものを追加してください:どの言語?何のlib?何が正確に '勝つ 'か、それがどこで定義され/宣言されているのか? – Spektre

答えて

0

最初の問題はundraw()GraphicsObject、ないGraphWinの方法なので、win.undraw()は、単に間違っているということです。

plot()は、描かれているオブジェクトとは異なり、Zelle Graphicsレベルで行ったことを追跡しない低レベルのピクセル設定方法です。 ...今のところそれほど+閉じる

win = GraphWin("Plot", 500, 500) # Creates a window 

for m in range(j): # Loop for each function 
    color = random.choice(['red', 'black', 'green', 'yellow', 'pink', 'blue']) # Randomizes a color for each function 
    for h in range(t): # Loop for each pair of values "x, y" 
     win.plot(axis[h], points[m][h], color) # Find points and plot each point in win 
    win.getMouse() # Pause before clicking 
    win.delete("all") # Clear out old plot 
+0

'win.delete(" all ")'が継承した 'Canvas.delete()'メソッドを呼び出していて(特別な定義済みのタグ '' all "')渡していたと答えた方があなたの答えはもっとはっきりしていると思います。 Folkは、 'GraphWin'がその名前でメソッドの定義を持っていないことに気付かないかもしれません。 – martineau

関連する問題