• 締切済み

座標変換による回転角の求め方

直交座標系で定義されている任意のベクトル(x1、y1、z1)に対し、そのベクトル方向に直交座標系のz軸が向くようにするための各軸回りの回転角(θx、θy、θz)の求め方(式)を教えてください。

みんなの回答

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

「そのベクトル方向に直交座標系のz軸が向く」とすると、問題がおかしくなる(軸が動く?)ので、 点(0、0、1)が任意の点(x1、y1、z1)と同じ向きになるようにするための各軸回りの回転角(θx、θy、θz)の求め方 とういう質問と解釈して回答します。 向きを同じにするだけなら、回転は2軸だけで十分です。 ベクトル(x1、y1、z1)の単位ベクトルを(u、v、w)とします。 点(0、0、1)をy軸回りに回転させて、z座標がwになるようにします。 回転角θyは、θy=arccos(w)であり、回転後の位置は、 (sin(θy)、0、cos(θy)) 次に、z軸回りに回転させて、x座標がuになるようにします。 回転角θzは、θz=arccos(u/sin(θy))であり、回転後の位置は、 (sin(θy)cos(θz)、sin(θy)sin(θz)、cos(θy)) (ただし、sin(θy)=0のときは、回転角θzは0とします) 上記では回転軸をy-zとしましたが、x-z、x-y、y-xでも可能です。

関連するQ&A

専門家に質問してみよう