「座標変換と回転」の版間の差分
(→座標軸の方向ベクトルの変換の合成) |
(→座標変換(合同変換)) |
||
(1人の利用者による、間の56版が非表示) | |||
1行: | 1行: | ||
[[Category:数学]][[Category:線形代数]][[category:回転]] | [[Category:数学]][[Category:線形代数]][[category:回転]] | ||
− | [[メインページ]]>[[数学の部屋 | + | [[メインページ]]>[[数学の部屋#回転]] |
==座標系の定義== | ==座標系の定義== | ||
6行: | 6行: | ||
座標というのは空間上に定められた目盛のというか定規のようなものと考えてよいでしょう。ここではデカルト座標(直交座標)に話を絞ります。 | 座標というのは空間上に定められた目盛のというか定規のようなものと考えてよいでしょう。ここではデカルト座標(直交座標)に話を絞ります。 | ||
− | + | 普通に内積が定義された3次元のデカルト座標系が既にあるとします。座標系を定めるのに座標系が必要というのも困った話ですが、神が定めた座標系があると思ってください。 | |
+ | |||
+ | ここに別の座標系を定義することを考えます。 | ||
+ | |||
+ | 基準となる原点と、X, Y, Z方向を下の図のように定めるとデカルト座標をひとつ定義できます。 | ||
[[ファイル:座標系の定義.png]] | [[ファイル:座標系の定義.png]] | ||
− | 図の'''点O''' | + | 図の'''点O'''が座標の原点を表します。面倒なので、 |
+ | ここでは '''点O'''は神の座標の原点と一致しているとしましょう。 <math>{\boldsymbol e_1}</math>, <math>{\boldsymbol e_2}</math>, <math>{\boldsymbol e_3}</math>は、x軸, y軸, z軸の方向を表す方向ベクトル(単位ベクトル)で、デカルト座標なので互いに直交しています。<math>{\boldsymbol e_3}</math>は、<math>{\boldsymbol e_1}</math>が回転して<math>{\boldsymbol e_2}</math>に向くとき、その回転に対して右ネジの方向に定めます。ようするに <math>{\boldsymbol e_3}={\boldsymbol e_1} \times {\boldsymbol e_2} </math>となるわけで、これを'''「右手系」'''といいます。 | ||
− | + | 新たに定義したデカルト座標上での点の位置 <math>{\boldsymbol r}</math> の'''座標値(成分)'''は | |
{{eqn|<math>{\boldsymbol r}=A_1{\boldsymbol e_1}+A_2{\boldsymbol e_2}+A_3{\boldsymbol e_3}</math>|1}} | {{eqn|<math>{\boldsymbol r}=A_1{\boldsymbol e_1}+A_2{\boldsymbol e_2}+A_3{\boldsymbol e_3}</math>|1}} | ||
18行: | 23行: | ||
と定義します。つまり、<math>A_i = {\boldsymbol r}\cdot{\boldsymbol e_i}</math> という関係になります。 | と定義します。つまり、<math>A_i = {\boldsymbol r}\cdot{\boldsymbol e_i}</math> という関係になります。 | ||
− | + | ==座標変換(合同変換)== | |
− | + | 次に原点が一致する、目盛の大きさが同じである2つの異なるデカルト座標系の座標変換を考えます。この変換は図形の内積を変えないのでいわゆる合同変換(鏡映、回転)になります。 | |
− | + | ||
− | + | ||
[[ファイル:座標軸の方向ベクトルの変換.png]] | [[ファイル:座標軸の方向ベクトルの変換.png]] | ||
42行: | 45行: | ||
ここで <math>R_{ij}</math> を<math>i</math>行<math>j</math>列の要素に持つ行列を <math>(R_{ij})</math> と書くことにしましょう。 | ここで <math>R_{ij}</math> を<math>i</math>行<math>j</math>列の要素に持つ行列を <math>(R_{ij})</math> と書くことにしましょう。 | ||
− | この <math>(R_{ij})</math> は座標系の座標軸方向ベクトルを別の座標軸方向ベクトルへ移すための行列です。<math>(R_{ij})</math>の各行ベクトルは x'y' | + | この <math>(R_{ij})</math> は座標系の座標軸方向ベクトルを別の座標軸方向ベクトルへ移すための行列です。<math>(R_{ij})</math>の各行ベクトルは x'y'z'座標系の座標軸の方向ベクトルを xyz座標系の'''成分'''で表したものですから、各行ベクトルの大きさは1であり、各行ベクトルは互いに直交することは明らかでしょう。また逆変換は <math>i</math>と<math>j</math>を入れ替えた、つまり転置になることは明らかなので、 <math>(R_{ij})=R</math>とすると |
{{eqn|<math>{}^t\!R=R^{-1}</math>|7}} | {{eqn|<math>{}^t\!R=R^{-1}</math>|7}} | ||
56行: | 59行: | ||
{{eqn|<math>A^'_i=\sum_{j=1}^3({\boldsymbol e^'_i}\cdot{\boldsymbol e_j})A_j = \sum_{j=1}^3R_{ij}A_j</math>|9}} | {{eqn|<math>A^'_i=\sum_{j=1}^3({\boldsymbol e^'_i}\cdot{\boldsymbol e_j})A_j = \sum_{j=1}^3R_{ij}A_j</math>|9}} | ||
− | + | これを全ての<math>i</math>に対して行列を使って書き直すと | |
{{eqn|<math> | {{eqn|<math> | ||
68行: | 71行: | ||
==座標軸の方向ベクトルの変換の合成== | ==座標軸の方向ベクトルの変換の合成== | ||
− | x'y'z'座標系の軸の方向ベクトルを、さらにもう一つの座標系 x''y''z'' | + | x'y'z'座標系の軸の方向ベクトルを、さらにもう一つの座標系 <nowiki>x''y''z''</nowiki> の軸方向ベクトルに変換することを考えます。 |
− | <math>{\boldsymbol e^{''}_1}</math>, <math>{\boldsymbol e^{''}_2}</math>, <math>{\boldsymbol e^{''}_3}</math> が x''y''z''座標系の座標軸の方向ベクトルを表しているとすると | + | <math>{\boldsymbol e^{''}_1}</math>, <math>{\boldsymbol e^{''}_2}</math>, <math>{\boldsymbol e^{''}_3}</math> が <nowiki>x''y''z''</nowiki>座標系の座標軸の方向ベクトルを表しているとすると |
{{eqn|<math>R^'_{ij} = {\boldsymbol e^{''}_i}\cdot{\boldsymbol e^'_j}</math>|11}} | {{eqn|<math>R^'_{ij} = {\boldsymbol e^{''}_i}\cdot{\boldsymbol e^'_j}</math>|11}} | ||
− | + | とし、<nowiki>x''y''z''</nowiki> 座標系の座標軸の方向ベクトル<math>{\boldsymbol e^{''}_1}</math>, <math>{\boldsymbol e^{''}_2}</math>, <math>{\boldsymbol e^{''}_3}</math>を'''x'y'z'座標系の成分'''で表すと、 | |
+ | |||
+ | {{eqn|<math>{\boldsymbol e^{''}_1}=R^'_{11}{\boldsymbol e^'_1}+R^'_{12}{\boldsymbol e^'_2}+R^'_{13}{\boldsymbol e^'_3}</math>|12}} | ||
+ | {{eqn|<math>{\boldsymbol e^{''}_2}=R^'_{21}{\boldsymbol e^'_1}+R^'_{22}{\boldsymbol e^'_2}+R^'_{23}{\boldsymbol e^'_3}</math>|13}} | ||
+ | {{eqn|<math>{\boldsymbol e^{''}_3}=R^'_{31}{\boldsymbol e^'_1}+R^'_{32}{\boldsymbol e^'_2}+R^'_{33}{\boldsymbol e^'_3}</math>|14}} | ||
+ | |||
+ | <nowiki>x''y''z''</nowiki> 座標系の座標軸の方向ベクトル<math>{\boldsymbol e^{''}_1}</math>, <math>{\boldsymbol e^{''}_2}</math>, <math>{\boldsymbol e^{''}_3}</math>を'''xyz座標系の成分'''で表すと、 | ||
+ | |||
+ | {{eqn|<math>{\boldsymbol e^{''}_1}=R^{''}_{11}{\boldsymbol e_1}+R^{''}_{12}{\boldsymbol e_2}+R^{''}_{13}{\boldsymbol e_3}</math>|15}} | ||
+ | {{eqn|<math>{\boldsymbol e^{''}_2}=R^{''}_{21}{\boldsymbol e_1}+R^{''}_{22}{\boldsymbol e_2}+R^{''}_{23}{\boldsymbol e_3}</math>|16}} | ||
+ | {{eqn|<math>{\boldsymbol e^{''}_3}=R^{''}_{31}{\boldsymbol e_1}+R^{''}_{32}{\boldsymbol e_2}+R^{''}_{33}{\boldsymbol e_3}</math>|17}} | ||
+ | |||
+ | <math>(R^'_{ij})=R^', (R^{''}_{ij})=R^{''}</math>とし、式(3), (4), (5)を(12), (13), (14) に代入して注意深く行列を地道に計算して (15), (16), (17)と比較すると | ||
+ | |||
+ | {{eqn|<math>R^{''} = R^'R</math>|18}} | ||
+ | |||
+ | になります。これはなかなか美しい関係です。すなわち、<math>{\boldsymbol e_1}</math>, <math>{\boldsymbol e_2}</math>, <math>{\boldsymbol e_3}</math>を<math>{\boldsymbol e^{''}_1}</math>, <math>{\boldsymbol e^{''}_2}</math>, <math>{\boldsymbol e^{''}_3}</math>へ移す行列<math>R^{''}</math>は各段階での座標軸ベクトルを移す行列の積になります。 | ||
+ | |||
+ | ==座標軸を移す行列の例== | ||
+ | |||
+ | 方向ベクトル<math>{\boldsymbol e_1}</math>, <math>{\boldsymbol e_2}</math>, <math>{\boldsymbol e_3}</math>に対し、<math>{\boldsymbol e^{'}_1}</math>, <math>{\boldsymbol e^{'}_2}</math>, <math>{\boldsymbol e^{'}_3}</math>が '''xyz座標系のz軸正方向に右ネジに<math>\theta</math>回転する場合'''、座標軸ベクトルを移す行列は | ||
+ | |||
+ | |||
+ | {{eqn|<math> | ||
+ | R^{(z)}(\theta)= | ||
+ | \left( \begin{array} {ccc} | ||
+ | \cos\theta & \sin\theta & 0 \\ | ||
+ | -\sin\theta & \cos\theta & 0 \\ | ||
+ | 0 & 0 & 1 | ||
+ | \end{array}\right)</math>|19}} | ||
+ | |||
+ | となります。 | ||
+ | |||
+ | 同様に、方向ベクトル<math>{\boldsymbol e_1}</math>, <math>{\boldsymbol e_2}</math>, <math>{\boldsymbol e_3}</math>に対し、<math> {\boldsymbol e^{'}_1}</math>, <math>{\boldsymbol e^{'}_2}</math>, <math>{\boldsymbol e^{'}_3}</math>が '''xyz座標系のy軸正方向に右ネジに回転する場合'''、座標軸ベクトルを移す行列は | ||
+ | |||
+ | {{eqn|<math> | ||
+ | R^{(y)}(\theta)= | ||
+ | \left( \begin{array} {ccc} | ||
+ | \cos\theta & 0 & -\sin\theta \\ | ||
+ | 0 & 1 & 0 \\ | ||
+ | \sin\theta & 0 & \cos\theta \\ | ||
+ | \end{array}\right)</math>|20}} | ||
+ | |||
+ | 同様に、方向ベクトル<math>{\boldsymbol e_1}</math>, <math>{\boldsymbol e_2}</math>, <math>{\boldsymbol e_3}</math>に対し、<math> {\boldsymbol e^{'}_1}</math>, <math>{\boldsymbol e^{'}_2}</math>, <math>{\boldsymbol e^{'}_3}</math>が '''xyz座標系のx軸正方向に右ネジに回転する場合'''、座標軸ベクトルを移す行列は | ||
+ | |||
+ | {{eqn|<math> | ||
+ | R^{(x)}(\theta)= | ||
+ | \left( \begin{array} {ccc} | ||
+ | 1 & 0 & 0 \\ | ||
+ | 0 & \cos\theta & \sin\theta \\ | ||
+ | 0 & -\sin\theta & \cos\theta \\ | ||
+ | \end{array}\right)</math>|21}} | ||
+ | |||
+ | 注意深く見ると、これらの行列は、[[3次元の内積の幾何学的な性質]]で紹介した回転行列と形は同じで角度の符号が逆であることがわかります。これは、座標系の回転は座標成分の逆回転だからです。 | ||
+ | |||
− | + | 次ページ [[オイラー角]]へ | |
− | + | ||
− | + |
2015年9月17日 (木) 02:31時点における最新版
座標系の定義
座標というのは空間上に定められた目盛のというか定規のようなものと考えてよいでしょう。ここではデカルト座標(直交座標)に話を絞ります。
普通に内積が定義された3次元のデカルト座標系が既にあるとします。座標系を定めるのに座標系が必要というのも困った話ですが、神が定めた座標系があると思ってください。
ここに別の座標系を定義することを考えます。
基準となる原点と、X, Y, Z方向を下の図のように定めるとデカルト座標をひとつ定義できます。
図の点Oが座標の原点を表します。面倒なので、
ここでは 点Oは神の座標の原点と一致しているとしましょう。 ,
,
は、x軸, y軸, z軸の方向を表す方向ベクトル(単位ベクトル)で、デカルト座標なので互いに直交しています。
は、
が回転して
に向くとき、その回転に対して右ネジの方向に定めます。ようするに
となるわけで、これを「右手系」といいます。
新たに定義したデカルト座標上での点の位置 の座標値(成分)は
![]() |
( 1 ) |
と定義します。つまり、 という関係になります。
座標変換(合同変換)
次に原点が一致する、目盛の大きさが同じである2つの異なるデカルト座標系の座標変換を考えます。この変換は図形の内積を変えないのでいわゆる合同変換(鏡映、回転)になります。
図には xyz座標系と x'y'z' 座標系の2つが示されていますが ,
,
が xyz座標系の座標軸の方向ベクトルを、
,
,
が x'y'z'座標系の座標軸の方向ベクトルを表しています。
![]() |
( 2 ) |
とし、x'y'z' 座標系の座標軸の方向ベクトル,
,
をxyz座標系の成分で表すと、
![]() |
( 3 ) |
![]() |
( 4 ) |
![]() |
( 5 ) |
これは以下のように略記できます。
![]() |
( 6 ) |
ここで を
行
列の要素に持つ行列を
と書くことにしましょう。
この は座標系の座標軸方向ベクトルを別の座標軸方向ベクトルへ移すための行列です。
の各行ベクトルは x'y'z'座標系の座標軸の方向ベクトルを xyz座標系の成分で表したものですから、各行ベクトルの大きさは1であり、各行ベクトルは互いに直交することは明らかでしょう。また逆変換は
と
を入れ替えた、つまり転置になることは明らかなので、
とすると
![]() |
( 7 ) |
になります。
ベクトル を2つの座標系の成分で表すと
![]() |
( 8 ) |
両辺に をかけると
![]() |
( 9 ) |
これを全てのに対して行列を使って書き直すと
![]() |
( 10 ) |
つまり、行列は xyz座標系での座標の成分をx'y'z'座標系の成分に変換する行列でもあります。
座標軸の方向ベクトルの変換の合成
x'y'z'座標系の軸の方向ベクトルを、さらにもう一つの座標系 x''y''z'' の軸方向ベクトルに変換することを考えます。
,
,
が x''y''z''座標系の座標軸の方向ベクトルを表しているとすると
![]() |
( 11 ) |
とし、x''y''z'' 座標系の座標軸の方向ベクトル,
,
をx'y'z'座標系の成分で表すと、
![]() |
( 12 ) |
![]() |
( 13 ) |
![]() |
( 14 ) |
x''y''z'' 座標系の座標軸の方向ベクトル,
,
をxyz座標系の成分で表すと、
![]() |
( 15 ) |
![]() |
( 16 ) |
![]() |
( 17 ) |
とし、式(3), (4), (5)を(12), (13), (14) に代入して注意深く行列を地道に計算して (15), (16), (17)と比較すると
![]() |
( 18 ) |
になります。これはなかなか美しい関係です。すなわち、,
,
を
,
,
へ移す行列
は各段階での座標軸ベクトルを移す行列の積になります。
座標軸を移す行列の例
方向ベクトル,
,
に対し、
,
,
が xyz座標系のz軸正方向に右ネジに
回転する場合、座標軸ベクトルを移す行列は
![]() |
( 19 ) |
となります。
同様に、方向ベクトル,
,
に対し、
,
,
が xyz座標系のy軸正方向に右ネジに回転する場合、座標軸ベクトルを移す行列は
![]() |
( 20 ) |
同様に、方向ベクトル,
,
に対し、
,
,
が xyz座標系のx軸正方向に右ネジに回転する場合、座標軸ベクトルを移す行列は
![]() |
( 21 ) |
注意深く見ると、これらの行列は、3次元の内積の幾何学的な性質で紹介した回転行列と形は同じで角度の符号が逆であることがわかります。これは、座標系の回転は座標成分の逆回転だからです。
次ページ オイラー角へ