• ベストアンサー

座標変換

3次元(x,y,z)物体の回転でよくx軸、y軸、z軸で回転がありますが、xy平面との角度φを回転させたいときはどうすればいいでしょうか? xy平面との角度をφ回転させた後の座標(X,Y,Z)はどうなるのでしょうか? また X     x Y = T・y Z     z このような行列Tが存在するのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.3

No.1の補足への回答です。 No.1の後半に書いたものでOKです。 元の座標を(x,y,z)とします。xとyは同時に0でないものとします。 θ=arctan(x/y)として、[θ=arctan(x/y)とは、tanθ=x/yとなる角。なお、y=0のときはθ= 90°として計算します。] z軸のまわりに角度θだけ回転させますと、 x'=x cosθ - y sinθ= (cosθ)(x - y tan θ) = 0 y'=x sinθ + y cosθ z'=z x'は0になるので、(x',y',z')はyz平面内に入ります。 つぎに、x軸のまわりに好みの角度φだけ回転させます。 x" = 0 y" = y' cosφ - z' sinφ z" = y' sinφ + z' cosφ 最後に、z軸のまわりに-θだけ回転させます。 x"' = x" cosθ + y" sinθ y"' = - x" sinθ + y" cosθ z"' = z"

go_for_it
質問者

お礼

わかりやすく説明していただきありがとうございました。

その他の回答 (2)

回答No.2

回転行列というものがありまして、二次元の場合の行列を紹介します。 cosA sinA -sinA cosA だったと思います。これである平面上で角度Aだけ回転できます。三次元の場合は考えてみてください。

go_for_it
質問者

補足

ネットでx軸、y軸、z軸に対する回転は確認しています。 私の質問の仕方もあいまいだったと思いますが、3次元の点A(x,y,z)と原点の直線とxy平面の角度を角度φ回転したいです。 ネットで見つからないんで困っています。 自分で計算しようとしましたが、ちょっとできませんでした。 もし、わかりましたらよろしくお願いします。

  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

ご質問の意味がわかりません。 >xy平面との角度φを回転させたい 「xy平面との角度」というからには相手があると思うのですが、xy平面と《何との》角度でしょう? もし、「xy平面内の任意の直線を軸として回転させたい」ということであれば、まずz軸を軸として回転し、傾かせたい方向をy軸に一致させます。つぎにx軸を軸として望みの角度に回転させます。最後にz軸を軸として、最初の回転と逆に回転させればOKです。この回転の全体を表わす行列は、これら3つの行列を右から左に並べて掛けると求められます。

go_for_it
質問者

補足

>ご質問の意味がわかりません。 すいません、質問の仕方があいまいだったと思います。 3次元の点A(x,y,z)と原点を引いた直線とxy平面の角度を角度φ回転したいんです。