2017-11-03 28 views
4

私は奇妙な角度で回転している3次元平面(点の数で構成されています)を持っています。私はそれを平らにしたい、つまりxy平面上に置く。私は平面方程式を持っていますが、計算された角度が正しくないか、間違った回転行列を使用している可能性があります。間違った回転行列によって、私はどの軸を回転させるべきかわからないということです。私の飛行機の写真を添付:3D平面を回転するにはどうすればいいですか?

this plane is rotated about more then one axis

Iは、以下の式を用いて計算することを試みた:

  1. シータ= -acosd((ドット(N1、N2))/(ノルム(N1 )*ノルム(n2)));
  2. 球面角度を計算する:thetaとphi;

両方の方法が同じ角度を与えているので、私はまずz軸について、次にy軸について面を回転させました。結果として得られた飛行機はほぼ平坦であるが、それでも幾分かの盛り上がりがある。

私は回転行列とロドリゲスの回転行列の両方を試しました。誰かがこの平面を回転させて平らにする方法を提案できれば、本当に役に立ちます。

+0

フラットプレーンが必要な場合は、平面方程式「z = h」をすぐに知ることができます。ここで、「h」は任意の高さ(回転させる点の高さ)です。あなたの数式には「n1」と「n2」は何ですか?回転軸が異なるので、2つの方法で同じ結果が得られるはずはありません。 –

+0

なぜ回転するのですか?あなたは飛行機の法線ベクトルを持っていますので、飛行機に含まれる2つの垂直ベクトルを見つけるのは簡単です。それらを新しい座標ベースとして使用します。 –

+0

@NicoSchertler、お返事ありがとうございます。 n1 = [0 0 1]であり、n2は平面に対して垂直である。 1.の式と球面の角度thetaは同じ値のthetaを与えます。あなたは、高さについてどのように回転するかを詳しく説明できますか? –

答えて

0

平面がxy平面に平行でない場合、法線ベクトルはz軸に平行ではありません。したがって、法線ベクトルとz軸(単位)ベクトルの外積は非ゼロになります。このベクトルは平面内にあり、xy平面に平行です。それを回転軸とします。平面をxy平面に平行にする回転角は、法線ベクトルとz軸の間の角度と同じです。

+0

お返事ありがとうございます。私はz軸と平面の法線の間の角度を計算し、x軸について回転させましたが、結果は正しくありません。法線ベクトルとz軸(単位)ベクトルの外積について回転するとどういう意味ですか?この軸についてどのように回転させることができますか? –

+0

あなたの例では、平面の法線は 'n =(0.898 -0.443 1)^ T'です。'(0 0 1)^ T 'を持つ交差積は'(0.443 0.898 0) 'です。これは、回転軸です。これは、Rodriguesの回転行列を使用して計算できます。 – coproc

関連する問題