私の質問は少し奇妙かもしれません。私はアルゴリズムを「開発」しましたが、同様のアルゴリズムがすでに存在するかどうかはわかりません。
状況:トラックポイント(2D)で定義されたトラックがあります。トラックポイントは、たとえばターンを表します。トラックポイントの間には直線しかありません。これで、この2D空間の一連の座標が与えられました。最初のトラックポイントから新しい座標までの距離と、最初の2つのトラックポイントの間隔の距離を計算します。測定された座標までの距離が最初のトラックポイントから2番目のトラックポイントまでの距離よりも短い場合、このポイントはこの間隔の間にあると想定します。次に、その上で線形補間を行います。大きい場合は、次の間隔で確認します。
つまり、基本的には間隔の距離を取り、そこにそれらを収めようとします。このトラックにほぼ沿って移動するオブジェクトを追跡しようとしています。
これは誰かに馴染みがあるように聞こえますか?誰かが同様の既存のアルゴリズムの提案を思い付くことができますか?
編集:これまでに述べたことから、位置がトラックポイントに多重に関連付けられていないことを明確にしたいと思います。ジョナサンが作成したすばらしいASCII描画について考えてみましょう。
X位置はセグメント1および2(S12)内にあることがわかります。次の位置はYです。これは、S12上にあるほど近くにあるとは見なされません。S23に移動し、S23が入っているかどうかを確認します。
入っている場合は、S12で他の値をチェックしません。これは、次のセグメントですでに1つ見つかっているためです。アルゴリズムは「振り返りません」。
しかし、それが最初のセグメントから遠く離れているが、それでも他のセグメントから遠く離れているために、そこから適切なセグメントが見つからない場合は、値をドロップして次の位置を探します再びS12に戻ります。
ループはまだ問題のままです。S23でYを取得し、2つまたは3つの位置をスキップすると(距離が遠すぎるため)、トラックを失う可能性があります。すでにS56にあるS34の1つの位置を特定できました。
たぶん、私はそれがどのセグメントであるべきかを判断するための平均速度を思い付くことができます。
セグメントが大きいほど、正しい決定を下す可能性が高くなるようです。