5

2つの2D三角形があり(つまり、両方とも平面にあります)、一方をもう一方に最も密接にマッピングする相似変換(回転+スケール+平行移動)を見つけたいと思います。

2つの三角形は実際には類似していないので、変換によって可能な限りそれらを整列させたいだけです。

2つの三角形の間にアフィン変換を作成して、一方を他方に正確にマッピングできることは知っていますが、アフィン変換に存在するせん断効果は必要ありません。変換を平行移動、回転、スケーリングのみで構成する必要があります。

これを行う方法はありますか?

4

1 に答える 1

2

類似性を定義するのは簡単なことではありませんが、いくつかのアイデアを試してみてください。三角形 A (ほぼ) を三角形 B に変換したいとします。

  • スケール: 三角形 A を面積 (B)/面積 (A) でスケーリングします。
  • 変換: 両方の三角形の重心が一致するようなベクトルで三角形 A を変換します。
  • 回転: 最適化方法を使用して[0, 360)、個人的な類似性基準を満たす回転の範囲内の値を選択します。

回転部分が一番難しいかも。シンプルでありながら効果的なアイデアは、3 点から始めて最善を尽くすヒルクライムを適用することです。3 つのポイントは、A のポイントの 1 つを B の各ポイントに配置するために必要な回転量です。

類似性基準自体も簡単ではありません。頭に浮かぶのは、変換後のサーフェスのオーバーラップ量です。これを計算するのは簡単ではないか、少なくとも面倒です。

于 2012-06-01T14:45:21.873 に答える