2016-12-02 17 views
0
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:Использование graphics.py моя горизонтальная линия показывает в неправильном месте

Кто-нибудь есть какие-либо идеи, почему это происходит?

То, что я ожидаю: Окно 400 на 400. Первая точка должна быть 50 единиц справа и 50 единиц. Второй пункт должен быть 350 единиц справа и 50 единиц. Строка должна соединять те точки, которые должны отображаться близко к нижней части окна.

+2

И проблема? – martineau

+0

Просьба уточнить, что вы ожидаете. –

+0

Окно 400 на 400. Первая точка должна быть 50 единиц справа и 50 единиц. Второй пункт должен быть 350 единиц справа и 50 единиц. Строка должна соединять те точки, которые должны отображаться близко к нижней части окна. Я думаю об этом неправильно? – RyanJLeonard

ответ

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

Однако, вместо того, чтобы менять вашу модель мира, вы можете попросить Zelle графику, чтобы изменить это точка зрения с помощью setCoords(xll, yll, xur, yur):

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