私は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
を:私はあなたがスパンをもっとしたいと思います(それゆえ
ZeroDivisionError
)私はコードを実行するときに得たトレースバックを追加しました。何か違うものがあれば、使用しているエラーのグラフィックスを 'graphics.py'にリンクしてください。 –
ありがとうございます。はい、それは私が得たのと同じエラーです。それは私がそれを取り除いたときにうまくいたので、私の座標と関係しています。私はもう少し練習する必要があると思う... – Seth
これはあなたの上にあるとは思わない、同じY座標の2つの点を与えるので、Yの差は0で、スケーリングのためにそれを使っていくつかの除算を試みる最後の行は '/ self.yscale'です)、私はライブラリを呪い、やや歪んだ行を使います。 –