3次元の座標変換と角度について。
3次元のシミュレーションの勉強をしています。
3次元の座標変換で
x,y,z:変換前の座標;
x',y',z':変換後の座標;
θ:回転する角度;
lx,ly,lz:平行移動量;
としたとき、
X軸に関する回転
|1 0 0 0|
|0 cosθ sinθ 0|
[x' y' z' 1] = [x y z 1]|0 -sinθ cosθ0|
|0 0 0 1|
Y軸に関する回転
|cosθ0 -sinθ0|
|0 1 0 0|
[x' y' z' 1] = [x y z 1]|sinθ0 cosθ 0|
|0 0 0 1|
Z軸に関する回転
|cosθ sinθ 0 0|
|-sinθcosθ0 0|
[x' y' z' 1] = [x y z 1]|0 0 1 0|
|0 0 0 1|
平行移動
|1 0 0 0|
|0 1 0 0|
[x' y' z' 1] = [x y z 1]|0 0 1 0|
|lx ly lz 1|
物体の姿勢を表現するときは
[物体の姿勢の変換行列] = [Z軸の回転行列][X軸の回転行列][Y軸の回転行列][平行移動]
|XX XY XZ 0| XX,XY,XZ・・・X軸の単位ベクトルを変換した場合のベクトル
|YX YY YZ 0| YX,YY,YZ・・・Y軸の単位ベクトルを変換した場合のベクトル
= |ZX ZY ZZ 0| ZX,ZY,ZZ・・・Z軸の単位ベクトルを変換した場合のベクトル
|LX LY LZ 1| LX,LY,LZ・・・平行移動量ベクトル
というのは分かるのですが、
X軸、Y軸、Z軸の単位ベクトルを変換した後のベクトルから
X軸、Y軸、Z軸にそれぞれ何度ずつ回転させたかを求めるにはどのようにすればよいのでしょうか?
つまり、X軸に対して30度、Y軸に対して45度、Z軸に対して60度回転させた後の
|XX XY XZ 0|
|YX YY YZ 0|
|ZX ZY ZZ 0|
|LX LY LZ 1|
の値からX軸に対して30度、Y軸に対して45度、Z軸に対して60度回転している事を導きたいのです。
分かる方教えてください。
お願いします。
(質問に関して、
http://www.ceres.dti.ne.jp/~ykuroda/oyaj/bone/basic3d.html
を参考にさせていただきました。)
お礼
ありがとうございました