根据旋转角度计算XY运动?

发布于 2024-10-20 01:22:43 字数 309 浏览 6 评论 0原文

假设我在 2D 空间中有一个可以旋转的对象,然后应该根据其旋转角度移动。

例如:

  • 如果角度为 0(指向上方),则 on_timer 应该将 Y 移动 1,X 移动 0。

  • 如果角度为 45,那么它应该将 Y 移动 1,将 X 移动 1。

  • 如果指向 90 度,则 Y 移动 0,X 移动 1。

  • 如果指向 135度,然后 Y 为 -1,X 为 +1,等等。

你知道有什么函数可以计算这个吗?

Say I have an object in 2D space that can rotate and then should move according to its rotation angle.

For example:

  • If angle is 0(pointing upwards), then on_timer it should move 1 by Y and 0 by X.

  • If angle is 45, then it should move 1 by Y and 1 by X.

  • If pointing 90 degrees, then 0 by Y and 1 by X.

  • If pointing 135 degrees, then -1 by Y and +1 by X, etc.

Do you know any functions for calculating this?

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

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

发布评论

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

评论(2

夜深人未静 2024-10-27 01:22:43

嗯,它似乎在不同的角度以不同的速度移动。

对于 0 度(直线向上),它移动了 1,但 45 度则移动了 sqrt(1^2 + 1^2) = 1.41。

我想你想看看《罪与余孽》。

X += Speed * Math.Cos(angle);
Y += Speed * Math.Sin(angle);

问候 Gert-Jan

well, it seems to move at different speeds for different angles.

For 0 degress (straight up) it moved by 1, but 45 begrees it moved sqrt(1^2 + 1^2) = 1.41.

I think you want to look at Sin and Cos.

X += Speed * Math.Cos(angle);
Y += Speed * Math.Sin(angle);

Regards Gert-Jan

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