关于从一个角度计算运动矢量的建议

时间:2014-09-05 05:23:30

标签: math vector xna

我试图计算给定角度的射弹的运动矢量(多少改变每帧的x和y)。

我尝试了x = Acos(角度),y = Asin(角度)来获得值,但是射弹运动的方向似乎永远不会与角度相匹配。

基本上我希望射弹能像一条线路一样移动。

我在C#中使用XNA框架编写此内容,我们将非常感谢所有建议

1 个答案:

答案 0 :(得分:1)

试试这个:

x=x0+v*cos(ang)*t
y=y0+v*sin(ang)*t
vx=v*cos(ang)
vy=v*sin(ang)
vx0=cos(ang)
vy0=sin(ang)
  • x,y,是时间上的子弹位置
  • vx,vy是子弹速度矢量
  • vx0,vy0是项目符号方向单位向量
  • x0,y0是bulet开始位置
  • v是子弹速度
  • t是从拍摄开始时间(在位置x0,y0)传递的时间
  • ang是子弹的角度(确保角度在sin的正确单位,cos在你的平台弧度/度上)
  • 如果您的角度与您的屏幕坐标系不匹配,则您必须反转一个轴(通常是y)