将球从一个点反弹到另一个点 - 矢量和加速度

时间:2015-06-13 15:36:49

标签: javascript math physics game-physics

我有一个球落到一个点,它应该反弹到另一个点。

我的球开始向第一个点加速,击中点并向左侧反弹。我想要的是速度和速度。在击中第一个点后施加到球上的加速度,因此它都具有弹跳效果,并且到达目的地(不会越过,如明亮的线索)。

我有点之间的线性向量,点的坐标和它们之间的角度。

Explanation

2 个答案:

答案 0 :(得分:2)

首先,我们通过求解t来计算从较高点到较低点需要多长时间:

  

at 2 + v iy t = dy

然后我们取t并将其用于横向速度:

  

v x = dx / t

一旦你获得了横向速度,只需要按照你喜欢的方式切割时间,然后依次将球移动到每个计算点。

答案 1 :(得分:0)

如果您不想进行全面的物理模拟,可以通过从起点到终点的线性插值(lerp)来伪造它。

有关java脚本中的lerp,请参阅Moving object from vector A to B in 2d environment with in increments of percents

根据您使用的坐标系更改指向上方的坐标(y或z)。 t从0..1开始动画:

    Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) 
    [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
    Type "copyright", "credits" or "license()" for more information.
    >>> ================================ RESTART ================================
    >>> 
    Traceback (most recent call last):
      File "/Users/tpmac/preBS.py", line 31, in <module>
        doc = file(os.path.join(subdir,f)).read()
    NameError: name 'file' is not defined
    >>>