在2D中模拟运动

时间:2011-11-05 08:01:27

标签: math trigonometry

我需要协助模拟飞机中2点之间的移动。考虑两点 P1:(x,y1) P2:(x2,y2)。我计算P1和P2之间的距离,比如 D ,我选择一个随机速度,比如 V 。接下来,我计算从P1移动到P2所需的时间,比如 T 。最后,我计算P1和P2之间的直线方程为y = mx + b。

例如,设T = 10秒。在前9秒,我想在直线上每秒生成点数,直到我在第10秒达到P2点。你能帮我这么做吗。

1 个答案:

答案 0 :(得分:4)

最好的方法是使用参数方程

x = x1 + t*(x2 - x1)
y = y1 + t*(y2 - y1)

其中t是从0到1的“时间”参数(0.5表示例如中途)。

如果您还希望自己的动作“柔和”(从零速度开始,然后加速然后减速并在到达点停止),您可以使用此修改后的等式

w = 3*t*t - 2*t*t*t
x = x1 + w*(x2 - x1)
y = y1 + w*(y2 - y1)

以下是w曲线与线性分布t相比较的曲线图,其中包含11个点(t = 0.0,0.1,... 0.9,1.0):

enter image description here