2010-02-02 46 views
0

我有像xy坐标(200,200)。我知道从球的起源角度计算。当球在二维环境中投掷时,如何才能找到达到特定xy坐标的初始速度?需要使用弹道中特定坐标的角度?

x = v0cosq0t; 
y = v0sinq0t - (1/2)gt2. 

但时间

荫。没有时间我能做到吗?请帮忙吗?

+0

你可能想考虑描述每个变量是什么。我不知道“gt2”代表什么。第2行也有语法错误。“。”代替 ”;” – Ponkadoodle 2010-02-02 06:50:04

回答

1

我假设你想让球在其路径的顶点击中特定点(200,200)。好了,我的物理学是有点生疏,但是这是我扔在一起:

v_y = square_root(2*g*y)

其中g是反映了由于重力的加速度为正数,y为你想有多高去(在这种情况下是200)。

v_x = (x*g)/v_y

其中x是你想多远,在X方向走(200在这种情况下),g是和以前一样,和Vy是我们以前的公式中得到了答案。

这些公式不需要角度。但是,如果你宁愿有速度+角,这是简单的:

v0 = square_root(v_x^2 + v_y^2)

angle = arctan(v_y/v_x)

这里是推导,如果你有兴趣:

(1/2)at^2 + v_yt + 0 = y

(1/2)at^2 + v_yt - y = 0

通过二次方程式,

t = (-v_y +/- square_root(v_y^2 - 2ay))/a

我们也有另一个公式,因为在顶点的垂直速度为0:

0 = v_y + at

替代:

0 = v_y + (-v_y +/- square_root(v_y^2 - 2ay))

0 = square_root(v_y^2 - 2ay)

0 = v_y^2 - 2ay

v_y = square_root(-2ay),或

v_y = square_root(2gy)

对于v_x:

v_x*t = x

从之前,T = v_y/A,因此

​​

希望作出足够的常识。

0

我确定你可以假设速度变化是瞬时的。游戏物理学中总是存在一些“狡猾”的部分,因为它在计算上太昂贵或者不足以让低粒度信息正确化。

您可以立即开始velocity ass,然后使用计时器类来测量每帧之间的时间(非常粗糙的做法),或者您可以在更新循环中设置一个计时器类,以便更新物理每x秒。

相关问题