假设我在 2D 空间中有一个可以旋转的对象,然后应该根据其旋转角度移动。
例如:
如果角度为 0(向上),那么
on_timer
它应该移动 Y 1 和 X 移动 0。如果角度是 45,那么它应该移动 Y 1 和 X 1。
如果指向 90 度,则 Y 为 0,X 为 1。
如果指向 135 度,则 Y 为 -1,X 为 +1,依此类推。
你知道计算这个的任何函数吗?
假设我在 2D 空间中有一个可以旋转的对象,然后应该根据其旋转角度移动。
例如:
如果角度为 0(向上),那么on_timer
它应该移动 Y 1 和 X 移动 0。
如果角度是 45,那么它应该移动 Y 1 和 X 1。
如果指向 90 度,则 Y 为 0,X 为 1。
如果指向 135 度,则 Y 为 -1,X 为 +1,依此类推。
你知道计算这个的任何函数吗?
好吧,它似乎在不同的角度以不同的速度移动。
对于 0 度(直线向上),它移动了 1,但是 45 同意它移动了 sqrt(1^2 + 1^2) = 1.41。
我想你想看看 Sin 和 Cos。
X += Speed * Math.Cos(angle);
Y += speed * Math.Sin(angle);
问候格特扬
检查一下: http: //msdn.microsoft.com/en-us/library/system.drawing.drawing2d.matrix.aspx (页面底部的示例)