12/05/10 21:39:40.85 eIugyYPz
ようやくホスト規制が解除された…
1か月以上前に書きこもうとして規制されたけど、テキストファイルが残ってたからせっかくなので書き込んでみるw
(もう先に進んじゃってるかもしれないけど)
>>219
まず、任意のベクトル(x,y,z)をAと呼ぶことにして、
Aを軸にθだけ回転させる行列を、ROT(A,θ)と呼ぶことにしてみる。
Aを軸にrだけ回転させる回転を、X,Y,Z軸で回転させた形にしたいので、
ROT(A,r) = ROT(X,θx)・ROT(Y,θy)・ROT(Z,θz)
ここで、A軸をX軸に移動させてみる。
①Z軸を軸として、A軸をXZ平面まで回転させる角度を、φzとする。回転後の軸をBとする。
B=A・ROT(Z,φz)
AをXY平面に射影したA'とX軸との内積と、cosφzを使って求められる気がする。
②Y軸を軸として、BをX軸まで回転させる角度を、φyとする。
φyは、X軸とBとの内積とcosφyを使えば求められる。
そしたら、A軸がX軸に一致したので、
③X軸を軸としてrだけ回転させる。
④③の回転後に、②の逆を行う。(ROT(Y,-φy)だけ回転させる)
⑤④の回転後に、①の逆を行う。(ROT(Z,-φz)だけ回転させる)
これで、Aを軸にrだけ回転したことになるはず。
結果として、
ROT(A,r) = ROT(X,r)・ROT(Y,-φy)・ROT(Z,-φz)
になるんじゃないかなー