2011-06-21 28 views
0

床の向きに基づいて3次元の点群を回転させようとしています。私は床を検出し、その法線ベクトルを計算しました。私はこの法線ベクトルを使って、フロア上のすべての点が同じy値を持つようにします。法線ベクトルに基づく点群の回転

正規化された2つのベクトルの内積は、それらの間の角度の余弦なので、まず、現在の法線ベクトル(0.856,0.958,2.58)と目的の法線ベクトル(0.0、0.958,0.0)を正規化します。ドットプロダクト= 0.917、したがって角度= 70.586ですが、3次元ではこれは役に立たないようです。 2回の回転を行う必要がありますか?もしそうなら、最善のアプローチについての示唆はありますか?

答えて

0

法線ベクトルAを希望の法線ベクトルA'に変換する回転を使用する場合は、無限の数があります。 (そのような回転を1つ与えると、それを適用して、A'の周りのスピンでそれを構成して、同じことをする他の回転をたくさん得ることができます。)

3次元でうまくいくアプローチの1つは、製品ベクトルV = A x A'AA'を含む平面に垂直)、次にVの周りをAA'の間の角度だけ回転させます。 (AA'がまだ一致していないことを最初にテストすることが重要です)

これをすべてかなり効率的に処理する方法については、hereです。

+0

ありがとうございます!私はこれを試してみる – RDL

関連する問題