如何进行二维矢量运动

发布于 2024-08-25 04:49:26 字数 1436 浏览 4 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

话少情深 2024-09-01 04:49:26

不能 100% 确定这就是您想要的,但我认为您想做:

x += speed * cos(angle);
y += speed * sin(angle);

其中 angle 是对象的旋转,xy< /code> 是它的坐标。 speed 是物体的速度。

Not 100% sure that this is what you want, but I think you want to do:

x += speed * cos(angle);
y += speed * sin(angle);

Where angle is the rotation of your object, and x and y are its coordinates. speed is the speed of your object.

世态炎凉 2024-09-01 04:49:26
x += sin(rotation) * speed;
y += cos(rotation) * speed;

但这取决于你的旋转方向。此代码适用于向上(北)0 度的旋转,顺时针移动。

x += sin(rotation) * speed;
y += cos(rotation) * speed;

But it depends on the orientation of your rotation. This code will work for rotation orientated up (north) at 0 degrees, moving clock-wise.

荒岛晴空 2024-09-01 04:49:26

使用三角学。

您拥有运动的角度和长度(即斜边),因此您应该能够使用 sin 或 cos 来计算所需的 x 和 y 运动量。

Use trigonometry.

You have the angle and the length of movement (which is your hypotenuse) so you should be able to use sin or cos to calculate the amount of x and y movement required.

暮光沉寂 2024-09-01 04:49:26

只是为了澄清,因为这是 C#,所以您需要这样做

double radians = (Math.PI/180)*angleInDegrees;
x += speed * Math.Cos(radians);
y += speed * Math.Sin(radians);

正如其他海报所提到的,这是基于使用三角学将旋转应用于速度矢量(在本例中,0 度矢量指向右侧) )。

Just to clarify, since this is C#, you'd want to do this

double radians = (Math.PI/180)*angleInDegrees;
x += speed * Math.Cos(radians);
y += speed * Math.Sin(radians);

As other posters have mentioned, this is based on using trigonometry to apply a rotation to a speed vector (in this case, the 0 degrees vector is pointing to the right).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文