- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:座標変換について)
座標変換についての質問
このQ&Aのポイント
- 座標変換についての質問。座標系XYZの空間に点A(X1,Y1,Z1)、点B(X2,Y2,Z2)、点C(X3,Y3,Z3)があります。この3点を通る円の中心をP(X0,Y0,Z0)とし、円の存在する平面をx'y'平面とします。
- 座標系x'y'z'から円周上の点D(X',Y',Z')を求め、座標系XYZに変換した(X4,Y4,Z4)を求めたいのですが、角度α、β、γの求め方が分かりません。
- X'' = X' * cosα - Y' * sinα, Y'' = X' * sinα + Y' * cosα, Z'' = Z', X''' = X'', Y''' = Y'' * cosβ - Z'' * sinβ, Z''' = Y'' * sinβ + Z'' * cosβ, X4 = X''' * cosγ + Z''' * sinγ, Y4 = Y''', Z4 = Z''' * cosγ - X''' * sinγ
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
やり方を見る限り、いろいろと回転させているのだと思いますが、どういう目的で回転させているのかが分からないので、答えにくいのですが、、、 (1) 点Pを原点に平行移動 (2) 平面ABCに垂直な直線z軸に平行になるように、x,y軸の周りに回転させる (3) PA→がx軸に重なるようにz軸の周りに回転させる のようにすれば、XYZ上の座標をx'y'z'の座標に移す事ができます。 (1)については点Pの座標が分かれば、どれだけ平行移動すればいいのかは分かります。 (2)については、ABC平面に垂直なベクトル(AB→×AC→等)があれば、どれだけ回転させればいいのかが分かります。 (3)については、(2の変換を施した後の)AP→の各成分が分かれば、どれだけ回転させればいいのかが分かります。 x'y'z'の座標をXYZの座標にするには、上の操作の逆をたどればいいだけですので、頑張れば求まりますね。 あるいは、 e_z'→=AB→×AC→/|AB→×AC→| e_x'→=PA→/|PA→| e_y'→=e_z'→×e_x'→ これは、座標系x'y'z'の正規直交基底となっていますので、x'y'z'の点D(X',Y'Z')は、(ちなみに、Dは円周上の点なので、Z'=0のはず) O'D→=X'e_x'→+Y'e_y'→+Z'e_z'→ と表す事ができます。(O'はx'y'z'の原点=点P) e_x'→等の定義から、座標系XYZでの各成分が求まりますので、原理的には、この方法でPD→を求めて、OD→=OP→+PD→=(X4,Y4,Z4)から、点Dの座標を求める事が可能です。 やはり、計算はかなり煩雑になるかもしれませんが。
お礼
解けました!大変助かりました。ありがとうございました。