使用graphics.py,我的水平线显示在错误的位置

时间:2016-12-02 02:29:08

标签: python python-2.7 line zelle-graphics

def main():
    win=GraphWin('Test',400,400)
    line=Line(Point(50,50),Point(350,50))
    line.draw(win)
    win.getMouse()
    win.close()

What comes out:

有谁知道为什么会这样?

我的期望: 窗口是400乘400.第一个点应该是右边50个单位和50个单位。第二点应该是右边350个单位和50个单位。该行应该连接那些应该出现在靠近窗口底部的点。

1 个答案:

答案 0 :(得分:0)

我相信这是因为你期待Zelle图形在不同的象限中进行绘图。听起来你好像是在左上象限,左下角的原点,但实际上你是在右下象限,原点在左上角。以下是对您的计划进行略微修改以确定您的方向:

from graphics import *

win = GraphWin('Test', 400, 400)

Line(Point(5, 5), Point(400, 5)).draw(win)
Line(Point(5, 5), Point(5, 400)).draw(win)

line = Line(Point(50, 50), Point(350, 50))
line.draw(win)

win.getMouse()
win.close()

带注释的输出

enter image description here

然而,您可以通过setCoords(xll, yll, xur, yur)要求Zelle图形改变它的观点,而不是改变您的世界模型:

from graphics import *

win = GraphWin('Test', 400, 400)
win.setCoords(0, 0, 400, 400)

Line(Point(5, 5), Point(400, 5)).draw(win)
Line(Point(5, 5), Point(5, 400)).draw(win)

line = Line(Point(50, 50), Point(350, 50))
line.draw(win)

win.getMouse()
win.close()

未注释的输出

enter image description here