2016-05-10 3 views
1

私はPythonグラフィックスモジュール(John Zelle)を使用しています。私は前に問題がなかった、私は何かを見落としているかもしれないが、私はそれを見つけることができない。私はティックタックトーボードを描こうとしています。シェルはエラーがgraphics.pyにあると言いますが、私はさまざまなソースからそれを再ダウンロードし、それをスキミングして、私が間違っていることを理解することはできません。助けてください。graphics.pyの線オブジェクト


#here is my code sample 
#import graphics library 
from graphics import * 
#build interface 
def interface(): 
    win = GraphWin("Tic Tac Toe", 600,700) 
    win.setCoords(8,1,6,1) 
    #horizontal line #1 
    h1 = Line(Point(2,1),Point(2,5)) 
    h1.draw(win) 
#...there is more but it's repetitive so I won't waste time. 

>>> interface() 
Traceback (most recent call last): 
    File ".../test.py", line 12, in <module> 
    interface() 
    File ".../test.py", line 10, in interface 
    h1.draw(win) 
    File "/LIB/graphics.py", line 450, in draw 
    self.id = self._draw(graphwin, self.config) 
    File "/LIB/graphics.py", line 627, in _draw 
    x1,y1 = canvas.toScreen(p1.x,p1.y) 
    File "/LIB/graphics.py", line 335, in toScreen 
    return self.trans.screen(x,y) 
    File "/LIB/graphics.py", line 386, in screen 
    ys = (self.ybase-y)/self.yscale 
ZeroDivisionError: float division by zero 
+0

を:私はあなたがスパンをもっとしたいと思います(それゆえZeroDivisionError

私はコードを実行するときに得たトレースバックを追加しました。何か違うものがあれば、使用しているエラーのグラフィックスを 'graphics.py'にリンクしてください。 –

+0

ありがとうございます。はい、それは私が得たのと同じエラーです。それは私がそれを取り除いたときにうまくいたので、私の座標と関係しています。私はもう少し練習する必要があると思う... – Seth

+0

これはあなたの上にあるとは思わない、同じY座標の2つの点を与えるので、Yの差は0で、スケーリングのためにそれを使っていくつかの除算を試みる最後の行は '/ self.yscale'です)、私はライブラリを呪い、やや歪んだ行を使います。 –

答えて

0

graphics.pyの内部力学を掘りのビットの後、私はあなたが少しperculiar何か持って気づいた:これはドキュメンテーション文字列を見ている私には少し奇妙に思える

win.setCoords(8,1,6,1) 

を:

左下の(x1、y1)から(x2、y2)iまでのウィンドウの座標を設定するnは右上隅です。

(注)IDLEを使用している場合は、グローバルwinを作ったりGraphWin.setCoords(を行うことによって、このドキュメントの文字列を見ることができますし、ドキュメント文字列は、だから、あなたがあなたの画面を定義している(

image of the docstring explained above

に表示されなければならないこと左下の(8,1)から右上隅の(6,1)に及んでいます...待って、何?

これは、x座標が非常に後方にあるだけでなく、Line(Point(2,1),Point(2,5))の行が8-6のxスパンでもないことを意味します。

キャンバスの高さは、高さがなので、未定義の動作となります。

win.setCoords(0,0,6,7) 

私はあなたが適切に正確な数を調整することが予想されるが、これは、スタッフが適切にあなたの画面上に表示されます:)

関連する問題