23

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

例如:

  • 如果角度为 0(向上),那么on_timer它应该移动 Y 1 和 X 移动 0。

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

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

  • 如果指向 135 度,则 Y 为 -1,X 为 +1,依此类推。

你知道计算这个的任何函数吗?

4

2 回答 2

33

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

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

我想你想看看 Sin 和 Cos。

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

问候格特扬

于 2011-03-04T11:18:07.267 回答
1

检查一下: http: //msdn.microsoft.com/en-us/library/system.drawing.drawing2d.matrix.aspx (页面底部的示例)

于 2011-03-04T11:18:05.757 回答