Почему кажется, что положение поршня (0, 0) находится на полпути вниз по окну слева? - PullRequest
0 голосов
/ 22 октября 2018

Я поражаюсь тем, что считаю довольно простым недоразумением того, как рисовать вещи с помощью библиотеки Rust Piston.Вот основная функция, с которой я работаю, в основном скопированная из обучающих программ для начинающих.

extern crate piston_window;

use piston_window::*;

fn main() {
    let dims = (640.0, 480.0);
    let mut window: PistonWindow =
        WindowSettings::new("Hello, Piston!", (dims.0 as u32, dims.1 as u32))
            .exit_on_esc(true)
            .build()
            .unwrap();
    while let Some(e) = window.next() {
        match e {
            Event::Loop(Loop::Render(_)) => {
                window.draw_2d(&e, |c, g| {
                    clear([1.0; 4], g);
                    rectangle(
                        [1.0, 0.0, 0.0, 1.0],
                        [0.0, 0.0, dims.0, dims.1],
                        c.transform,
                        g,
                    );
                });
            }
            _ => {}
        }
    }
}

Я пытаюсь нарисовать красный прямоугольник размером с окно, но когда я запускаю эту функцию, я получаюкрасная рамка, нарисованная в левом нижнем углу рамки, не занимающая всего окна, как я мог бы ожидать.

red rectangle appears to the lower left corner of the frame

Как ни странно, если яизмените размеры на (480.0, 480.0), чтобы окно было квадратным, а окно заполняло окно, как я и ожидал.Я полагаю, это просто мое недопонимание того, как поршень обрабатывает координаты.Что именно мне здесь не хватает, и почему кажется, что позиция (0, 0) находится на полпути вниз по левому окну?

...