Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 网格坐标和绘图坐标在ggez库中如何相互关联?_Rust_Game Development - Fatal编程技术网

Rust 网格坐标和绘图坐标在ggez库中如何相互关联?

Rust 网格坐标和绘图坐标在ggez库中如何相互关联?,rust,game-development,Rust,Game Development,创建直线时,会传递点列表,但graphics::draw需要X/Y坐标: let(origin,dest)=(Point::new(0.0,0.0),Point::new(0.0,0.0)); 让线=图形::网格::新线(ctx,&[origin,dest],2.0,图形::白色)?; 图形:绘图(ctx,&line,(Point2::new(0.0,0.0),)?; 对于矩形,x、y、width和height在创建矩形时传递,但graphics::draw需要x/y坐标: let recta

创建直线时,会传递点列表,但
graphics::draw
需要X/Y坐标:

let(origin,dest)=(Point::new(0.0,0.0),Point::new(0.0,0.0));
让线=图形::网格::新线(ctx,&[origin,dest],2.0,图形::白色)?;
图形:绘图(ctx,&line,(Point2::new(0.0,0.0),)?;
对于矩形,
x
y
width
height
在创建矩形时传递,但
graphics::draw
需要x/y坐标:

let rectangle=graphics::Mesh::new_rectangle(
ctx,
graphics::DrawMode::fill(),
[0.0,0.0,30.0,30.0].into(),
图形::白色,
)?;
图形:绘图(ctx和矩形,(点:新的(0.0,0.0))?;
为什么需要两个坐标?

来自:

区别在于它是在网格的坐标空间中还是在屏幕的坐标空间中。对不起,这个重复的回答,让我看看我是否能做得更好

创建网格时,假设您正在一张透明的图形纸上绘制点。这是网格坐标系。然后,当您调用
graphics::draw()
时,将其放在另一张图纸上,传递给
draw()
的坐标是两个坐标之间的偏移量。但它不仅仅是一个偏移,
draw()
使用可以旋转、缩放网格坐标系等的选项。如果只是创建网格,使其以
50,50
为中心,然后对其进行旋转,则默认情况下,网格将围绕其
0,0
点而不是网格的中心旋转。如果创建网格使其位于其
0,0
坐标的中心,默认情况下,旋转或缩放网格将从其自身的中心开始。
DrawParam::offset()
参数可以控制“中心”点的位置,但仍然有点麻烦

因此,使用这两种方法可以实现完全相同的效果,但我认为
draw()
更适合于位置操纵

发件人:

区别在于它是在网格的坐标空间中还是在屏幕的坐标空间中。对不起,这个重复的回答,让我看看我是否能做得更好

创建网格时,假设您正在一张透明的图形纸上绘制点。这是网格坐标系。然后,当您调用
graphics::draw()
时,将其放在另一张图纸上,传递给
draw()
的坐标是两个坐标之间的偏移量。但它不仅仅是一个偏移,
draw()
使用可以旋转、缩放网格坐标系等的选项。如果只是创建网格,使其以
50,50
为中心,然后对其进行旋转,则默认情况下,网格将围绕其
0,0
点而不是网格的中心旋转。如果创建网格使其位于其
0,0
坐标的中心,默认情况下,旋转或缩放网格将从其自身的中心开始。
DrawParam::offset()
参数可以控制“中心”点的位置,但仍然有点麻烦

因此,使用这两种方法可以实现完全相同的效果,但我认为
draw()
更适合于位置操纵


如果我不得不猜测的话,你经过的点会被用作绘制其他对象的坐标系(基本上,点的x,y被添加到其他所有对象的x,y值中)。你做过实验吗?是的,我刚刚做过,网格xy坐标似乎对矩形居中很有用。如果你找到了问题的答案,你可以将其发布在下面的答案字段中,这样其他人可以从中受益。如果我不得不猜测,你经过的点会被用作绘制其他对象的坐标系(基本上,点的x,y被添加到其他所有点的x,y值中)。你做过任何实验吗?是的,我刚刚做过,网格xy坐标似乎对矩形中心之类的事情很有用。如果你找到了问题的答案,你实际上可以将其发布在下面的答案字段中,这样其他人可以从中受益