点の移動・回転

提供: メモ帳@fmaj7b5.info
2010年12月12日 (日) 19:32時点における白飯 (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

目次

座標系

座標系

3次元空間を表す(直交)座標系は二種類あるらしい。右手系と左手系。えーと、親指の付け根に原点をとって、親指、人差し指、中指にそれぞれ\boldsymbol{x}\boldsymbol{y}\boldsymbol{z}軸を割り当てると\boldsymbol{x} \rightarrow \boldsymbol{y} \rightarrow \boldsymbol{z} \rightarrow \boldsymbol{x} \rightarrow \cdotsが右回りになるのが右手系、左回りになるのが左手系。 図から分かるように、この二つの座標系はどんなに回転させても一致しないので無駄な努力はしない事。右手系と左手系の変換は適当な軸一つまたは三軸全ての符号を反転させればよい。ただし、二つの座標系を一緒に扱うと混乱するだけなので、どちらか一方に統一した方が賢い。まぜるな危険。 ここでは特に断らない限り右手系を用いる事にする。

3次元の回転は「どれだけ回したか」の他に「どの軸周りに回したか」というのも必要。なので、回転軸と回転角を適当に定める必要がある。 ここでは図に示すように、右手系は右ネジの向き、左手系は左ネジの向きに軸と回転方向をとる。こうすると2次元の回転方向と(z軸周りの)回転方向が同じになるため、何かと考えやすいはず。


2次元の点の移動と回転

座標変換

いわゆる座標変換の話。ここで注意するのは、どの座標系からどの座標系への変換なのか、計算して出てきた座標はどの座標系で表されているかという事。ここでは、固定されている座標系から見て原点が(u, v)にあって\theta回転している座標系で表現されている点\boldsymbol{x}^\primeを、もとの固定されている座標系で表すとどうなるか、というのをやる。言い換えると、「ある点\boldsymbol{x}が原点周りに\theta回転して、平行移動(u, v)しました。この点\boldsymbol{x}^\primeはどこでしょう」という問題。

まあ、これは図を見たまんまで。\boldsymbol{x}^\prime = \left( x^\prime_1, x^\prime_2 \right)とすると、x^\prime_1成分はもとの座標系でx^\prime_1 ( \cos \theta, \sin \theta )x^\prime_2x^\prime_2 ( -\sin \theta, \cos \theta )になって(u, v)平行移動するので、次式になる。

  \boldsymbol{x} =
    \begin{bmatrix}
      \cos \theta & -\sin \theta \\
      \sin \theta &  \cos \theta
    \end{bmatrix}
    \boldsymbol{x}^\prime
    +
    \begin{bmatrix}
      u \\
      v
    \end{bmatrix}

このとき、

  R =
    \begin{bmatrix}
      \cos \theta & -\sin \theta \\
      \sin \theta &  \cos \theta
    \end{bmatrix}
を回転行列といったりする。この行列は正規直交行列(R^\text{T} R = R R^\text{T} = I)で\text{det}(R) = 1になる。



複素数を使った回転の表現

2次元の原点周りの回転は、大きさ1の複素数c + isを使っても表現できる。

  \begin{align}
    \left (x^\prime_1 + ix^\prime_2 \right) (c + is) &= c x^\prime_1 - s x^\prime_2 + i (s x^\prime_1 + c x^\prime_2) \\
      &=
        \begin{bmatrix}
          c & -s
        \end{bmatrix}
        \boldsymbol{x}^\prime
        + i
        \begin{bmatrix}
          s & c
        \end{bmatrix}
        \boldsymbol{x}^\prime
  \end{align}
ただしiは虚数単位とする。

で、何が言いたいかというと、「大きさが1」という条件は使いやすいので、覚えておくと良い事あるかもよってこと。


3次元の座標変換

2次元の場合と同じ。原点周りの回転R、平行移動\boldsymbol{t}とすると次式になる。

  \boldsymbol{x} = R \boldsymbol{x}^\prime + \boldsymbol{t}
ただし、Rは行列式の値が1の3x3正規直交行列である。

ちなみに、\text{det}(R) = -1のものは擬回転と呼ぶ事があり、これは回転の他に右手系・左手系を一方から他方に変換する作用も持つ。 つまり、右手系の話しかしていない時にこのような行列が出てきた場合は、何かがおかしいってこと。


逆問題を解く

今までは、移動量や回転角が与えられた場合に点がどう動くかを見てきた。ここでは反対に移動前後の点の組\left \{ (x_i, x^\prime_i) \right \}_iが与えられた時に、並行移動量および回転角(・回転軸)を求めることを考える。

(そのうち書く)