我遇到了我认为是关于如何使用 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) 似乎在左侧窗口的中间?