我需要协助模拟飞机中2点之间的移动。考虑两点 P1:(x,y1)和 P2:(x2,y2)。我计算P1和P2之间的距离,比如 D ,我选择一个随机速度,比如 V 。接下来,我计算从P1移动到P2所需的时间,比如 T 。最后,我计算P1和P2之间的直线方程为y = mx + b。
例如,设T = 10秒。在前9秒,我想在直线上每秒生成点数,直到我在第10秒达到P2点。你能帮我这么做吗。
答案 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):