人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

数学の質問です。3次元の座標上に、点A(a,b,c)があります。原点から点Aまでの距離は2000です。
点Aを、x軸を中心にRX°、y軸を中心にRY°、Z軸を中心にRZ°回転させた場合、新しい点B(x,y,z)の座標を、a,b,c,RX,RY,RZを用いて表してください。

答えは必須、過程も完結に説明してください。


●質問者: irhnhhtn
●カテゴリ:コンピュータ 学習・教育
✍キーワード:RX ry 数学 次元
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kosuke2020
●30ポイント

座標系を右手系として、回転方向も右ねじ方向であるとする。

まず、x軸を中心に回転させる場合、点(a,b,c)は平面x=a上を動く(x座標は変化しない)ので、平面x=aにx軸との交点を原点とするyz座標系を導入すると2次元の回転で表現することができる。回転後の座標を(a,bx,cx)とすると、

{\(\array{\\{b_x}\\{c_x}}\)={\(\array{\\{\cos(RX)}\quad{-\sin(RX)}\\{\sin(RX)}\quad{\cos(RX)}}\)\(\array{\\{b}\\{c}}\)=\(\array{\\{b\cos(RX)-c\sin(RX)}\\{b\sin(RX)+c\cos(RX)}}\)

となるので、同様に点(a,bx,cx)をy軸を中心にRY回転させた座標を(ay,bx,cxy)、点(ay,bx,cxy)をz軸を中心にRZ回転させた座標をB(ayz,bxz,cxy)とすると、

{\(\array{\\{c_{xy}}\\{a_y}}\)=\(\array{\\{c_x\cos(RY)-a\sin(RY)}\\{c_x\sin(RY)+a\cos(RY)}}\) ※右手系なのでz,xの順

{\(\array{\\{a_{yz}}\\{b_{xz}}}\)=\(\array{\\{a_y\cos(RZ)-b_x\sin(RZ)}\\{a_y\sin(RZ)+b_x\cos(RZ)}}\)

以上より、

B=\(\array{\\{a_{yz}}\\{b_{xz}}\\{c_{xy}}}\)=\(\array{\\{a_y\cos(RZ)-b_x\sin(RZ)}\\{a_y\sin(RZ)+b_x\cos(RZ)}\\{a\sin(RY)+c_x\cos(RY)}}\)

=\(\array{\\{\{c_x\sin(RY)+a\cos(RY)\}\cos(RZ)-b_x\sin(RZ)}}\\{\{c_x\sin(RY)+a\cos(RY))\sin(RZ)\}+b_x\cos(RZ)}\\{a\sin(RY)+c_x\cos(RY)}\)

=\(\array{\\{\[\{b\sin(RX)+c\cos(RX)}\}\sin(RY)+a\cos(RY)\]\cos(RZ)-\{b\cos(RX)-c\sin(RX)\}\sin(RZ)}\\{\[\{b\sin(RX)+c\cos(RX)}\}\sin(RY)+a\cos(RY)\]\sin(RZ)+\{b\cos(RX)-c\sin(RX)\}\cos(RZ)}\\{a\sin(RY)+\{b\sin(RX)+c\cos(RX)\}\cos(RY)}\)

=\(\array{\\{b\sin(RX)\sin(RY)\cos(RZ)+c\cos(RX)\sin(RY)\cos(RZ)+a\cos(RY)\cos(RZ)-b\cos(RX)\sin(RZ)+c\sin(RX)\sin(RZ)}\\{b\sin(RX)\sin(RY)\sin(RZ)+c\cos(RX)\sin(RY)\sin(RZ)+a\cos(RY)\sin(RZ)+b\cos(RX)\cos(RZ)-c\sin(RX)\cos(RZ)}\\{a\sin(RY)+b\sin(RX)cos(RY)+c\cos(RX)\cos(RY)}\)

=\(\array{\\{a\cos(RY)\cos(RZ)+b\{\sin(RX)\sin(RY)\cos(RZ)-\cos(RX)\sin(RZ)\}+c\{\cos(RX)\sin(RY)\cos(RZ)+\sin(RX)\sin(RZ)\}}\\{a\cos(RY)\cos(RZ)+b\{\sin(RX)\sin(RY)\cos(RZ)+\cos(RX)\sin(RZ)\}+c\{\cos(RX)\sin(RY)\cos(RZ)-\sin(RX)\sin(RZ)\}}\\{a\sin(RY)+b\sin(RX)cos(RY)+c\cos(RX)\cos(RY)}\)

以上ですが……途中間違えてるかもしれないので、あってるか確かめてみます。すいません。

◎質問者からの返答

ありがとうございます。

あっているかはちょっとすぐに分からないので自分の方でも確認してみます。

あと、できれば解は因数分解(?)とか定理とかで置き換えて、できるだけシンプルに変形してもらえるとうれしいです。

(できるかもわかりませんが・・・)


2 ● Rec
●40ポイント

座標変換には回転行列を使いましょう。

x軸周りの回転は

\left(\begin{array}1&0&0\\0&\cos RX&-\sin RX\\0&\sin RX&\cos RX\\\end{array}\right)

y軸周りの回転は

\left(\begin{array}\cos RY&0&\sin RY\\0&1&0\\-\sin RX&0&\cos RX\\\end{array}\right)

z軸周りの回転は

\left(\begin{array}\cos RZ&-\sin RZ&0\\\sin RZ&\cos RZ&0\\0&0&1\end{array}\right)

となってます。 これらを、(a,b,c)に作用させます。まずx軸周りの回転は

\left(\begin{array}1&0&0\\0&\cos RX&-\sin RX\\0&\sin RX&\cos RX\\\end{array}\right)\left(\begin{array}a\\b\\c\end{array}\right)=\left(\begin{array}a\\b\cos RX-c\sin RX\\b\sin RX+c\cos RZ\end{array}\right)

次にy軸周りの回転は

\left(\begin{array}\cos RY&0&\sin RY\\0&1&0\\-\sin RY&0&\cos RY\end{array}\right) \left(\begin{array}a\\b\cos RX-c\sin RX\\b\sin RX+c\cos RZ\end{array}\right)=\left(\begin{array}a\cos RY+\sin RY(b\cos RX+c\sin RX)\\b\cos RX-c\sin RX\\-a\sin RY+\cos RY(b\cos RX+c\sin RX)\end{array}\right)

さらにz軸周りの回転は

\left(\begin{array}\cos RZ&-\sin RZ&0\\\sin RZ&\cos RZ&0\\0&0&1\end{array}\right)\left(\begin{array}a\cos RY+\sin RY(b\cos RX+c\sin RX)\\b\cos RX-c\sin RX\\-a\sin RY+\cos RY(b\cos RX+c\sin RX)\end{array}\right)=\left(\begin{array}\cos RZ(a\cos RY+\sin RY(b\cos RX+c\sin RX))-\sin RZ(b\cos RX-c\sin RX\\\sin RZ(a\cos RY+\sin RY(b\cos RX+c\sin RX))+\cos RZ(b\cos RX-c\sin RX)\\-a\sin RY+\cos RY(b\cos RX+c\sin RX)\end{array}\right)

となります。従って、

\left(\begin{array}x\\y\\z\end{array}\right)=\left(\begin{array}\cos RZ(a\cos RY+\sin RY(b\cos RX+c\sin RX))-\sin RZ(b\cos RX-c\sin RX\\\sin RZ(a\cos RY+\sin RY(b\cos RX+c\sin RX))+\cos RZ(b\cos RX-c\sin RX)\\-a\sin RY+\cos RY(b\cos RX+c\sin RX)\end{array}\right)

◎質問者からの返答

ありがとうございます。

回転行列ですか。ちょっと思い出せませんが調べてじっくり確認してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ