質問: 3次元で回転させた座標値の計算方法 点(ax、ay、az)を3次元空間にある、点(bx、by、bz)から、点(cx、cy、cz)に向かう直線を軸に任意の角度で回転させたときの、点(a’x、a’y、a’z)の座標値の計算方法を教えてください。ただし自分の数学レベルは中学生並でベクトルが少しだけ理解できるていどです。よろしくお願いします。
回答: オイラー角による座標変換だと 任意の方向ベクトルを軸にした回転はややこしくなるので 四元数を使った座標変換がオススメです 参考urlを見て頂ければここに書くことはないと思います (ただ私の知識がないだけですが...) また、任意の点を中心に回転させたいなら ゲタを履かせて座標変換してから、ゲタを取ればいいだけなので簡単にできるはずです ゲタを履かせるの意味がわからないかも知れませんが aを中心にbを回転させるとすると bからaを引き、平行移動させてaを原点に持ってきて 同じく平行移動させた(b-a)を回転させ、その結果(b-a)'にaを足してもう一度平行移動させて ってことです、解るかな? b → (b-a) → (b-a)' → (b-a)'+a 参考url:http://staff.aist.go.jp/toru-nakata/quaternion.html