空間での座標回転角度の求め方とは
空間上にある点A(x,y,z)をX,Y,Zを基準として(θx、θy、θz)で回転させます。この回転でできた点をBとします。
そのBを同じ様にX,Y,Zで回転させて元へ戻したい場合、
X,Y,Zの順番で回転させているので、
戻すにはZ,Y,Xの順番に回転させればB=Aとなると思います。
tanや内積などを使い、回転角度を考えその角度で回転させることを考えました。
しかし、tanを用いた場合も内積で考えた場合も多少誤差が生じます。(θx=60度になるはずが、計算すると57度になったりする)
正しく回転角度(θx、θy、θz)を求めたい場合はどうすればいいのでしょうか?
一応回転の式はグラフィックス関係の本から調べました。
また自分でθx、θy、θzを入力した場合A=Bとなるので、
式は問題ないと考えています。
現状ではBを逆回転する際のθzを
tan(√(Bx^2+By^2)/√(Bz^2))=θz
Z軸逆回転したものをB'とすればθyは
tan(√(Bx'^2+Bz'^2)/√(By'^2))=θy
さらにY軸逆回転したものをB~とすればθyは
tan(√(By~^2+Bz~^2)/√(Bx~'^2))=θx
となりこれで求める事ができると考えています。
内積で考えた場合は内積の式からcosθを求め、acos(cosθ)で求めています。
長々とすみませんが、よろしくお願いします。
お礼
すみません。 距離は確かにかわりませんね。 変換後の座標と正面からみたときの長さを知りたいのです。 追記で申し訳ありません。