如何处理与速度有关的多个角度?

时间:2015-05-14 20:37:17

标签: c# math xna velocity angle

我有一个问题,我说,中间有一个物体,然后我想从物体射出射弹。我做了很多触发/几何以获得适当的角度和这个“看不见的三角形”的边长可以这么说,但我对射弹的速度有问题。

我想将速度标准化,以便对所有射弹都一样。不幸的是,我发现尝试获得精确的角度以及标准化速度,导致我只能在8个方向上拍摄(向上,向下,向左,向右,向右,向右,向左,向上 - 左)。

例如,如果我的射弹速度是3,那么我有8个选项:

(0,-3)= Up

(3,-3)=右上角

(3,0)=右

(3,3)= Down-Right

(0,3)=向下

( - 3,3)=左下角

( - 3,0)=左

( - 3,-3)=左上角

有没有一种很好的方法来处理这种情况,或者我只是需要更多地学习数学技能来找到并解释“更好的数学”之间的“中间”角度?

1 个答案:

答案 0 :(得分:0)

要获得在x和y坐标中给定速度的射弹的速度,只需使用好的'毕达哥拉斯定理。

(Projectile Velocity)^2 = (X-Velocity)^2 + (Y-Velocity)^2

对于您的示例:

Up, Right, Down, Left directions =>  Projectile Velocity = 3

The other directions => Projectile Velocity = Sqrt(9 + 9) = 4.24264069

如果你想找到X-Velocity和Y-Velocity使你的射弹速度在所有情况下都是3,你需要使用三角法as Kratz described in his comment