Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python graphics.py中的线对象不是图形_Python_Graphics_Line_Draw - Fatal编程技术网

Python graphics.py中的线对象不是图形

Python graphics.py中的线对象不是图形,python,graphics,line,draw,Python,Graphics,Line,Draw,我正在使用python图形模块(John Zelle)。我以前从来没有遇到过问题,我可能只是忽略了一些东西,但我找不到它。我正试着画一个tic-tac趾板。这些线没有画进去。Shell说错误在graphics.py中,但我从不同的来源重新下载了它,甚至浏览了一遍,无法找出我做错了什么。请帮忙 #这是我的代码示例 #导入图形库 从图形导入* #构建接口 def接口(): win=图形输入(“Tic Tac Toe”,600700) win.setCoords(8,1,6,1) #水平线#1 h1

我正在使用python图形模块(John Zelle)。我以前从来没有遇到过问题,我可能只是忽略了一些东西,但我找不到它。我正试着画一个tic-tac趾板。这些线没有画进去。Shell说错误在graphics.py中,但我从不同的来源重新下载了它,甚至浏览了一遍,无法找出我做错了什么。请帮忙


#这是我的代码示例
#导入图形库
从图形导入*
#构建接口
def接口():
win=图形输入(“Tic Tac Toe”,600700)
win.setCoords(8,1,6,1)
#水平线#1
h1=直线(点(2,1),点(2,5))
h1.平局(获胜)
#…还有更多,但它是重复的,所以我不会浪费时间。
>>>接口()
回溯(最近一次呼叫最后一次):
文件“../test.py”,第12行,在
接口()
文件“../test.py”,第10行,在接口中
h1.平局(获胜)
文件“/LIB/graphics.py”,第450行,在绘图中
self.id=self.\u绘图(graphwin,self.config)
文件“/LIB/graphics.py”,第627行,在绘图中
x1,y1=画布到屏幕(p1.x,p1.y)
文件“/LIB/graphics.py”,第335行,在屏幕中
返回自动变速器屏幕(x,y)
文件“/LIB/graphics.py”,第386行,在屏幕中
ys=(self.ybase-y)/self.yscale
ZeroDivisionError:浮点除以零

在深入研究了
graphics.py的内部机制之后,我注意到你有点敏感:

win.setCoords(8,1,6,1)
看着文档字符串,我觉得这有点奇怪:

将窗口的坐标设置为从中的(x1,y1)开始运行 从左下角到右上角的(x2,y2)

请注意,如果您正在使用IDLE,您可以通过使
win
全局或执行
GraphWin.setCoords(
)来查看此文档字符串,并且文档字符串应显示在

所以你要定义你的屏幕从左下角的(8,1)到右上角的(6,1)……等等,什么

这意味着不仅x坐标非常向后,而且直线
直线(点(2,1),点(2,5))
甚至不在
8-6的x范围内

画布的高度范围为1到1,因为画布的高度为0,导致行为未定义。(因此出现
zero错误

我想你想要的跨度更像:

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

这将使内容正确地显示在您的屏幕上,尽管我希望您能够适当地调整准确的数字:)

在对
图形的内部机制进行了一点挖掘之后。py
我注意到您有一点敏感:

win.setCoords(8,1,6,1)
看着文档字符串,我觉得这有点奇怪:

将窗口的坐标设置为从中的(x1,y1)开始运行 从左下角到右上角的(x2,y2)

请注意,如果您正在使用IDLE,您可以通过使
win
全局或执行
GraphWin.setCoords(
)来查看此文档字符串,并且文档字符串应显示在

所以你要定义你的屏幕从左下角的(8,1)到右上角的(6,1)……等等,什么

这意味着不仅x坐标非常向后,而且直线
直线(点(2,1),点(2,5))
甚至不在
8-6的x范围内

画布的高度范围为1到1,因为画布的高度为0,导致行为未定义。(因此出现
zero错误

我想你想要的跨度更像:

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

这将使内容正确地显示在您的屏幕上,尽管我希望您适当地调整确切的数字:)

我添加了我在运行代码时得到的回溯,如果您得到了一些不同的东西,请链接到您正在使用的
graphics.py
并通过您得到的错误。谢谢。是的,这与我得到的错误相同。这与我的坐标有关,因为当我删除它时,它工作正常。我想我需要练习一下更多…我不认为这是你的错,你给它两个点相同的y坐标,所以y的差值是0,它尝试用它进行一些除法来缩放(注意最后一行是
/self.yscale
)所以我只是诅咒这个库并使用一条稍微倾斜的线。天哪,我怎么没有注意到??非常感谢!我添加了我在运行代码时得到的回溯,如果你得到了一些不同的东西,请链接到你正在使用的
graphics.py
,并跳过你得到的错误。谢谢。是的,这是我得到的同一个错误。这是很简单的g与我的坐标有关,因为当我删除它时,它工作得很好。我想我需要多练习一点……我不认为这是你的错,你给它两个点相同的y坐标,所以y的差值是0,它尝试用它进行一些除法以进行缩放(注意最后一行是
/self.yscale
)所以我就诅咒图书馆,用一条稍微歪斜的线。天哪,我怎么没注意到呢?太感谢你了!