平面A上の点が与えられた場合、平面B上の対応する点にマッピングできるようにしたいです。2つの平面間にN個の対応する参照点のペアがありますが、全体的なマッピングは単純なアフィン変換ではありません。 (私にとってはホモグラフィはありません)。
私が試したこと:
特定の点について、平面Aで最も近い3つの参照点を見つけ、その三角形のバリーセントリック座標を計算してから、その変換を平面Bの対応する参照点に適用します。失敗した理由:最も近い3つの点がほぼ同一線上にある場合があります。エラーは巨大でした。また、国境を越えるときのマッピングには一貫性がありませんでした。とても「ぎこちない」ものでした。
N個の参照点(N ^ 3)を指定して、可能なすべての三角形を計算します。サイズ順に並べてください。与えられたポイントについて、それが入っている最小の三角形を見つけます。これにより、ポイントの線形の問題が修正されますが、それでも非常に不安定で低速でした。
三角形分割された平面Aから開始します。参照点を反復処理し、それぞれを参照平面に追加します。ポイントを追加するたびに、それは少なくとも1つの三角形に存在します。新しい参照点を頂点として使用して、その三角形を3つの三角形に分割します。最終的に平面Aが三角形になり、平面Aから平面Bに簡単にマッピングできます。問題:すべての三角形が平面の端にある点を持っていることを証明できます。これにより、参照点が平面の端から遠く離れている場合、大きなエラーが発生します。
これはかなり標準的な問題だと思います。このための標準的なアルゴリズム/ライブラリはありますか?