Math 确定目标跟随者的轨迹-追踪曲线
我已经开始为游戏服务器开发单位轨迹,现在我正在尝试在给定时间检索单位的位置。当弹道只是一条直线时很容易,但当一个单位追赶另一个单位时要复杂得多 我已经做了一些工作来说明这个问题。黑色轨迹是指在一个方向上移动的单位。蓝色追赶黑色,红色追赶蓝色。我想要的是预先计算蓝色和红色的整个轨迹,以便能够在恒定的时间内恢复它们的位置 可能吗?谢谢你的帮助Math 确定目标跟随者的轨迹-追踪曲线,math,spline,Math,Spline,我已经开始为游戏服务器开发单位轨迹,现在我正在尝试在给定时间检索单位的位置。当弹道只是一条直线时很容易,但当一个单位追赶另一个单位时要复杂得多 我已经做了一些工作来说明这个问题。黑色轨迹是指在一个方向上移动的单位。蓝色追赶黑色,红色追赶蓝色。我想要的是预先计算蓝色和红色的整个轨迹,以便能够在恒定的时间内恢复它们的位置 可能吗?谢谢你的帮助 我可以为您设置问题,但不能解决它 黑色曲线以恒定速度v0直线移动 蓝色曲线以恒定速度v1沿黑色方向移动 为简单起见,请选择坐标,以便在时间t=0时,黑色曲线从
我可以为您设置问题,但不能解决它 黑色曲线以恒定速度v0直线移动 蓝色曲线以恒定速度v1沿黑色方向移动 为简单起见,请选择坐标,以便在时间t=0时,黑色曲线从(x=0,y=0)开始并沿x方向移动 因此,在时间t>=0时,黑色曲线的位置为(v0t,0) 问题陈述 目标是在给定初始位置(x(t=0),y(t=0))的情况下,找到时间t>=0的蓝色曲线的x,y。运动微分方程是 dx/dt=v1(v0t-x)/a(t) dy/dt=v1(-y)/a(t) 式中,a(t)=sqrt((v0t-x)^2+(y^2))是时间t时蓝色和黑色之间的距离 这是一个由两个非线性耦合微分方程组组成的系统。似乎没有完整的分析解决方案。放弃而不尝试输入
D[y[t],t] = -y[t] / sqrt[(t-x[t])^2 + y[t]^2], D[x[t],t] = (t-x[t]) / sqrt[(t-x[t])^2 + y[t]^2]
你可以试着问下去。祝你好运 卡尔·E·芒根(Carl E.Mungan)的一篇论文解决了一个特殊的版本,在这个版本中,追逐者最初垂直于被追逐物体的轨迹。我认为这是解决方案中一个不重要的元素,因为垂直性在轨迹的其余部分消失了
它是一个微分方程的自治系统,因为时间不会显式地出现在方程的系数或项中。这支持了本文给出的解族足够一般,可以提供非垂直初始条件的观点
这篇论文提供了更多的链接和参考资料,以及一个有用的搜索词“追踪曲线”
让我们陈述一个稍微不同的,比Mungan的更一般的初始条件。假设被追逐物体(“船”)最初位于原点,并以恒定速度V沿正y轴(x=0)向上移动。追逐物体(“鱼雷”)最初位于(x0,y0),虽然直接在“船”处进行瞬时重新定向,但也以一定的恒定速度V移动 x0为零的特殊情况会导致线性追踪曲线,即迎面碰撞或尾随追逐,因为y0为正或负。否则,通过y轴上的反射,可以假定x0>0,而不丧失一般性。因此,x坐标的有理幂将得到很好的定义 为了我们的直接目的,假设速度V,V是不相等的,因此比率r=V/V不是1。以下是与Mungan方程(10)类似的“鱼雷”曲线的封闭式解(1): 其中常数H,C可由初始条件确定 应用鱼雷最初向原点处的船舶位置移动的条件,我们取x in(1)的导数,并从两侧取消系数1/H:
r -r
dy/dx = (1/2) [ (x/H) - (x/H) ] (2)
现在,将曲线在初始点(x0,y0)处的坡度dy/dx与其通过原点的直线的坡度dy/dx相等:
r -r
(x0/H) - (x0/H) = 2y0/x0 = K (3)
这等于正B=(x0/H)^r的二次方程:
即B=[K+sqrt(K^2+4)]/2(但使用if K<0以避免取消错误),这允许根据我们对x0和r的了解来确定H:
H = x0/(B^(1/r)) (5)
知道H使得通过替换(1)中的初始点(x0,y0)来确定相加常数C变得简单
棘手的部分是确定“鱼雷”轨道上的哪个点对应于给定时间t>0。这个问题的反问题解决得相当简单。给定轨迹上的一点,使用导数公式(2)找到该点处的切线,并从该直线的y截距b(即从当前“船舶”位置)推断时间t:
因此,确定(x(t),y(t))在给定时间t>0时“鱼雷”位于何处基本上是一项寻根练习。人们很容易将期望的x(t)括在对应于时间t1和t2的两个x坐标x1和x2之间,使得t1
B^2 - K*B - 1 = 0 (4)
H = x0/(B^(1/r)) (5)
t = b/V (6)