点とベクトルと座標変換

はじめに

研究室で座標変換について説明する機会が何回かありました. 本記事ではそこで説明した内容をまとめます.

本記事ではまず,「点」と「ベクトル」を定義します. 次に,「座標」と「座標系」を定義します. そして,行列を用いた座標変換について解説します.

点とベクトル

定義

点とは位置を持つものです. 以下では点を太字の文字(例えば, 𝐚 )で表すことにします.

ベクトルとは向きと大きさをものです. 以下ではベクトルを矢印のついた文字(例えば, v )で表すことにします.

以下に点とベクトルの例を示します.

点とベクトルの例
点とベクトルの例

演算

ベクトルの実数倍

ベクトル v の実数 kkv は次のようなベクトルを表します.

  • k>0 の場合: v と同じ向きで大きさを |k| 倍にしたベクトル
  • k<0 の場合: v と逆の向きで大きさを |k| 倍にしたベクトル
  • k=0 の場合:大きさが0のベクトル
ベクトルの和

ベクトル u とベクトル v の和 u+v は次のようなベクトルを表します.

  • u の終点と v の始点を一致させるように uv を平行移動させたときに, u の始点から v の終点へ向かうベクトル
点の平行移動

𝐚 のベクトル v による平行移動 𝐚+v は次のような点を表します.

  • 𝐚 から v の方向に v の大きさの分だけ移動した先の点

以下に点とベクトルの演算の例を示します.

点とベクトルの演算の例
点とベクトルの演算の例

座標と座標系

点の位置を数値を用いて表現することを考えます. 座標系とは点の位置を数値を用いて表現するときに基準となるものです. 座標系は一つの点といくつかのベクトルで構成されます. 座標系を構成する点は原点を,ベクトルは座標軸を表します. ある点の座標とはその点の位置を表現する数値の組です.

具体的には,点 𝐨 とベクトル v0v1 で構成された座標系を (𝐨,v0,v1) とし,ある点 𝐚𝐨v0v1 と実数 a0a1 を用いて 𝐚=𝐨+a0v0+a1v1 と表せる時,座標系 (𝐨,v0,v1) を基準とした点 𝐚 の座標は (a0,a1) となります.

以下に座標系と座標の例を示します.

座標系と座標の例
座標系と座標の例

座標変換と座標変換行列

座標変換とは,ある座標系を基準とした点の座標を,別の座標系を基準とした座標として表現し直すことです. ここでは,行列を用いて座標変換を行う方法と,逆に座標変換前後の座標から座標変換で用いられた行列を求める方法を解説します.

行列を用いて座標変換を行う

以下の点と行列が与えられたとします.

  • 𝐚 :座標系 (𝐨,v0,v1) を基準とした座標が (a0,a1) である.
  • 行列 MM=(m00m01m02m10m11m12001)

この時, 𝐩=𝐨+m02v0+m12v1u0=(m00+m02)v0+(m10+m12)v1u1=(m01+m02)v0+(m11+m02)v1 を満たす別の座標系 (𝐩,u0,u1) を考え,その座標系を基準とした点 𝐚 の座標 (b0,b1) を次のように求めることができます. (b0b11)=M(a0a11)=(m00m01m02m10m11m12001)(a0a11)=(m00a0+m01a1+m02m10a0+m11a1+m121)

座標変換で用いられる行列を座標変換行列と呼びます.

以下に行列を用いて座標変換を行う例を示します.

行列を用いて座標変換を行う例
行列を用いて座標変換を行う例

座標変換行列を求める

ある2つの座標系 (𝐨,v0,v1)(𝐩,u0,u1) と以下の3点が与えられたとします.

  • 𝐚0
    座標系 (𝐨,v0,v1) を基準とした座標: (a00,a10)
    座標系 (𝐩,u0,u1) を基準とした座標: (b00,b10)
  • 𝐚1
    座標系 (𝐨,v0,v1) を基準とした座標: (a01,a11)
    座標系 (𝐩,u0,u1) を基準とした座標: (b01,b11)
  • 𝐚2
    座標系 (𝐨,v0,v1) を基準とした座標: (a02,a12)
    座標系 (𝐩,u0,u1) を基準とした座標: (b02,b12)

この時,座標系 (𝐨,v0,v1) を基準とした任意の点の座標を,座標系 (𝐩,u0,u1) を基準とした座標に変換する座標変換行列 M を次のように求めることができます.

まず, 𝐚0𝐚1𝐚2 を行列 M を用いてそれぞれ座標変換すると 𝐛0𝐛1𝐛2 となることから, (b00b101)=M(a00a101)(b01b111)=M(a01a111)(b02b121)=M(a02a121) が成り立つはずです. これらをまとめて (b00b01b02b10b11b12111)=M(a00a01a02a10a11a12111) と表すことができ,以下のように M について解くことで座標変換行列を求めることができます. M=(b00b01b02b10b11b12111)(a00a01a02a10a11a12111)1

以下に座標変換行列を求める例を示します.

座標変換行列を求める例
座標変換行列を求める例

まとめ

  • まず,「点」,「ベクトル」,「座標系」,「座標」を定義した.
  • 座標変換行列を用いて点を座標変換する方法について解説した.
  • 座標変換前後の点の座標から座標変換行列を求める方法について解説した.
  • 数式はMathMLで書いた.