rdo*_*eui 4 algorithm distance
我的问题可能有点奇怪.我已经"开发"了一种算法,并且不知道是否已经存在类似的算法.
情况:我有一个由跟踪点(2D)定义的轨道.例如,轨迹点代表转弯.在跟踪点之间只有直线.现在我在这个2D空间中给出了一组坐标.我计算从第一个跟踪点到新坐标的距离以及前两个跟踪点的间隔距离.如果到测量坐标的距离比从第一个到第二个轨迹点的距离短,我假设这个点位于这个间隔之间.然后我对它进行线性插值.如果它更大,我将检查下一个间隔.
所以它基本上采用间隔距离并试图将它们放在那里.我正试图跟踪一个大致沿着这条轨道移动的物体.
这对某人来说听起来很熟悉吗?有人可以提出类似现有算法的建议吗?
编辑:从我到目前为止所说的,我想澄清一个位置与跟踪点没有多少关联.考虑Jonathan制作的精细ASCII绘图:
发现X位置在段1和2内(S12).现在下一个位置是Y,不能认为它足够接近S12.我将继续前进到S23,并检查它是否存在.
如果它在,我将不会检查S12的任何其他值,因为我已经在下一个段中找到了一个.该算法"不回头".
但是如果它没有从那里找到正确的段,因为它发生在远离第一段,但仍然远离任何其他段无论如何,我将删除该值,下一个位置将被寻找又回到了S12.
循环仍然是一个问题.考虑我为S23得到Y然后跳过两三个位置(因为它们太远了),我可能会失去赛道.我可以在S34确定一个位置,它已经在S56中了.
也许我可以拿出一些平均速度来判断应该在哪个部分.
看起来细分市场越大,做出正确决策的机会就越大.
关于你所描述的算法,我关注的是它是"贪婪的"并且可以选择"错误的"轨道段(或者至少是一个不是最接近点的轨道段).
是时候将ASCII艺术推向极限了.考虑以下路径(数字表示跟踪点列表中的序列)和坐标X(以及后来的Y).
1-------------2
|
| Y
X |
5-----+-----6
| |
| |
4-----3
Run Code Online (Sandbox Code Playgroud)
我们该怎么解释你的描述?
[C]计算从第一个轨迹点到新坐标的距离以及前两个轨迹点的间隔距离.如果到测量坐标的距离小于从第一个到第二个轨迹点的距离,则[假设]该点位于该间隔之间; [...] [i]它更大,[...]检查下一个间隔.
我认为第一句话的意思是:
棘手的部分是条件句的解释.
我的印象是,如果D1X或D2X小于D12,则假设X在轨道段TP1到TP2上(或最接近)(称之为段S12).
看一下图中X的位置,D1X和D2X都小于D12,这是相当清楚的,所以我对你的算法的解释会将X解释为与S12相关,但是X显然比S23或S56更接近于它是S12(但这些都被丢弃,甚至没有被考虑).
我误解了你的算法吗?
稍微考虑一下:我对你的算法的解释是,如果点X位于以TP1为中心的半径D12的圆内或以TP2为中心的半径D12的圆内,则将X与S12相关联.但是,如果我们也考虑Y点,我建议你使用的算法也会将它与S12联系起来.
如果算法被细化MAX(D1Y, D2Y) < D12,那么它不认为Y与S12有关.但是,X可能仍被认为与S12而不是S23或S56有关.