Я поражаюсь тем, что считаю довольно простым недоразумением того, как рисовать вещи с помощью библиотеки 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,
);
});
}
_ => {}
}
}
}
Я пытаюсь нарисовать красный прямоугольник размером с окно, но когда я запускаю эту функцию, я получаюкрасная рамка, нарисованная в левом нижнем углу рамки, не занимающая всего окна, как я мог бы ожидать.
Как ни странно, если яизмените размеры на (480.0, 480.0)
, чтобы окно было квадратным, а окно заполняло окно, как я и ожидал.Я полагаю, это просто мое недопонимание того, как поршень обрабатывает координаты.Что именно мне здесь не хватает, и почему кажется, что позиция (0, 0) находится на полпути вниз по левому окну?