Math 二维运动仿真

Math 二维运动仿真,math,trigonometry,Math,Trigonometry,我需要帮助模拟平面上两点之间的运动。考虑两个点 P1:(x,y1)< /强>和 p2:(x2,y2)< /强>。我计算P1和P2之间的距离,比如说D,然后选择一个随机速度,比如说V。接下来,我计算从P1移动到P2所需的时间,比如说T。最后,我计算P1和P2之间的直线方程y=mx+b 例如,设T=10秒。对于前9秒,我想在直线上每秒生成点,直到我在第10秒到达点P2。你能帮我吗。最好的方法是使用参数方程 x = x1 + t*(x2 - x1) y = y1 + t*(y2 - y1) 其中,t

我需要帮助模拟平面上两点之间的运动。考虑两个点<强> P1:(x,y1)< /强>和<强> p2:(x2,y2)< /强>。我计算P1和P2之间的距离,比如说D,然后选择一个随机速度,比如说V。接下来,我计算从P1移动到P2所需的时间,比如说T。最后,我计算P1和P2之间的直线方程y=mx+b


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

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

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)
以下是与线性分布
t
相比的
w
曲线图,其中有11个点(t=0.0,0.1,…0.9,1.0):


感谢您的回复。我只是想确认我理解参数t。在上述示例中,P1处的t=0,P2处的t=1。要在P1和P2之间生成9个坐标,t将为0.1、0.2、…、0.9。是吗?@NewToAndroid:是的。。。两个公式之间的区别在于,在第一种情况下,点的间距相等,而在第二种情况下,点的分布将使用加减速曲线。