0

床の向きに基づいて 3D 点群を回転させようとしています。床を検出し、その法線ベクトルを計算しました。この法線ベクトルを使用して、床のすべてのポイントが同じ y 値を持つようにします。

正規化された 2 つのベクトルの内積は、それらの間の角度の余弦であるため、最初に現在の法線ベクトル (0.856、0.958、2.58) と目的の法線ベクトル (0.0、0.958、0.0) を正規化します。内積 = 0.917 したがって、角度 = 70.586 ですが、3 次元であるため、これは役に立たないようです。2 回ローテーションする必要がありますか? もしそうなら、最善のアプローチに関する提案はありますか?

4

1 に答える 1

2

A法線ベクトルを目的の法線ベクトルに変換する回転が必要な場合A'、それらは無数にあります。(そのような回転が 1 つ与えられた場合、それを適用し、それをスピンで構成しA'て、同じことを行う他の多くの回転を取得できます。)

3 次元でうまく機能する 1 つの方法は、外積ベクトルV = A x A'( と を含む平面に垂直A)を計算し、との間の角度だけA'回転することです。(最初にそれをテストし、まだ一致していないことが重要です。)VAA'AA'

これらすべてをかなり効率的に行う方法の説明がここにあります

于 2011-06-21T16:36:55.440 に答える