2d弹丸轨迹?

时间:2012-04-30 16:26:59

标签: javascript jquery math

我的对象有一个点x,y这总是随着鼠标在800x600的盒子里拖动它而改变。我的对象也旋转到鼠标设置的角度,它可以是任何360度。我现在的问题是如何从那个角度拍摄射弹,当然也是从XY位置射击。抛射物只需要沿直线行进,但它需要以主要物体的正确角度移动。我有角度,我有XY位置我需要的是使它从适当的角度移过网格的公式。

编辑 - 当前的JSFIDDLE射弹没有以正确的角度射击。 http://jsfiddle.net/vbk4Z/16/

1 个答案:

答案 0 :(得分:2)

标准公式为:

xn = x0 + v * t * cos(theta)
yn = y0 + v * t * sin(theta)

(x0, y0)是原始位置,v是所需的速度,theta是角度(以弧度表示),t是自射弹发射以来的时间

请注意,这使用相对于正x轴测量角度逆时针的经典卡地亚惯例,并且y轴朝上。

如果您正在使用浏览器坐标,并且恰好选择使用轴承(顺时针相对于“向上”/“向北”),那么您需要交换一些标志和触发功能:

xn = x0 + v * t * sin(theta)
yn = y0 - v * t * cos(theta)