为什么看起来活塞的位置(0,0)在左侧窗口的一半下方?

时间:2018-10-22 14:58:44

标签: rust coordinates rust-piston

我碰到的是一个关于如何使用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)似乎位于左侧窗口的一半下方?

0 个答案:

没有答案