• 締切済み

任意点を中心とした回転

 3Dで、任意の点を中心としたXYZ軸回転を行列で行うにはどうしたらよいでしょうか?

みんなの回答

  • usatan2
  • ベストアンサー率37% (163/436)
回答No.3

任意点を中心とした回転では、原点が原点に対応しませんので、行列で表現するのは不可能です。 行列で変換する限り、原点(0,0,0)は必ず(0,0,0)に変換されます。 そこで、次元をあげて、3次元の点(x,y,z)を4次元の点(x,y,z,1)として扱うと、行列で表現することができるようになります。 「同次座標系」というキーワードで検索してみてください。

tomonori7
質問者

お礼

 ありがとうございます。  クォータニオンを使用して、上手くいきました。  回答ありがとうございました。

  • 10ken16
  • ベストアンサー率27% (475/1721)
回答No.2

平行移動と回転移動を組み合わせるしかありません。 (4×4の行列で可能です)

参考URL:
http://www.ceres.dti.ne.jp/~ykuroda/oyaj/bone/basic3d.html
tomonori7
質問者

お礼

 ありがとうございます。  クォータニオンを使用して、上手くいきました。  回答ありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「平行移動で中心点を原点に移してから原点中心の回転を行い, 最後にもう 1度平行移動して中心点を戻す」という操作をがんばって行列で書く.

tomonori7
質問者

お礼

 ありがとうございます。  クォータニオンを使用して、上手くいきました。  回答ありがとうございました。

関連するQ&A