質問: (0 0 1) (-sinθ 0 cosθ) (0 sinψ cosψ ) (z2) より,3行3列の行列を計算すると 0=cosφcosθx2 + (-sinφcosψ+cosφsinθsinψ)y2+(sinφsinψ+cosφsinθcosψ)z2 0=sinφcosθx2 + (cosφcosψ+sinφsinθsinψ)y2+(-cosφsinψ+sinφsinθcosψ)z2 1=-sinθx2 + cosθsinψy2 + cosθcosψz2 となると思うのですが、この式からφ、ψ、θが導きだせません。 どうすれば求めることができるか教えていただけますか。
回答: 回転角度を計算してみました。 #3で方向と書きましたが、方向の代わりに、 直交する2点を(0,0,1)と(0,1,0)に移動する回転角度を求めてみます。 (直交=中心から2点を臨む角度が90°) ある点から別の点の方を向くと考えれば方向と同じ意味です。 2点を(x1, y1, z1),(x2, y2, z2)とします。 2点の条件は、 x1^2+y1^2+z1^2=1 (長さが1) x2^2+y2^2+z2^2=1 (長さが1) x1x2+y1y2+z1z2=0 (直交条件) z軸での回転角φを、 cosφ=(y2z1-y1z2)/√(z1^2+z2^2) sinφ=(x2z1-x1z2)/√(z1^2+z2^2) y軸での回転角ψを、 cosψ=√(z1^2+z2^2) sinψ=x1y2-x2y1 x軸での回転角θを、 cosθ=z1/√(z1^2+z2^2) sinθ=-z2/√(z1^2+z2^2) ただし、z1=z2=0のときは、 cosφ=1 sinφ=0 cosψ=0 sinψ=x1y2-x2y1 cosθ=x1 sinθ=y1 この角度で、z→y→xの順に回転すれば、 (x1, y1, z1)→(0, 0, 1) (x2, y2, z2)→(0, 1, 0) となります。 実際に計算してみましょう。 (x1, y1, z1)=(1/√3, 1/√3, 1/√3) (x2, y2, z2)=(1/√2, 0, -1/√2) すると、 cosφ=1/√5 sinφ=2/√5 cosψ=√5/√6 sinψ=-1/√6 cosθ=√2/√5 sinθ=√3/√5 回転行列にすると、(行列を横に並べて書きます) ez=((1/√5, -2/√5, 0), (2/√5, 1/√5, 0), (0, 0, 1)) ey=((√5/√6, 0, 1/√6), (0, 1, 0), (-1/√6, 0, √5/√6)) ex=((1, 0, 0), (0, √3/√5, -√2/√5), (0, √2/√5, √3/√5)) exeyez(1/√3, 1/√3, 1/√3)=(0, 0, 1) exeyez(1/√2, 0, -1/√2)=(0, 1, 0) となるはずです。