根据旋转角度计算X和Y方向移动?

25

假设我有一个在二维空间内可以旋转并根据其旋转角度移动的对象。

例如:

  • 如果角度为0(向上),则它应该按Y轴移动1个单位,X轴移动0个单位。

  • 如果角度为45,则应该沿着Y轴和X轴各移动1个单位。

  • 如果角度为90度,则按Y轴移动0个单位,按X轴移动1个单位。

  • 如果角度为135度,则沿Y轴向负方向移动1个单位,沿X轴向正方向移动1个单位,以此类推。

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


这是一个好问题。 - GeneCode
2个回答

37

看起来它以不同的速度移动,根据角度的不同而变化。

对于0度(正上方),它移动了1,但是对于45度,它移动了sqrt(1^2 + 1^2) = 1.41。

我认为你需要查看Sin和Cos。

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

祝好,Gert-Jan


10
谢谢,搞定了! :) 双倍弧度值等于(取向角度减90度)乘以π除以180; 将此坐标的X值增加15乘以余弦值;将此坐标的Y值增加15乘以正弦值。 - Rob


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接