DOSEIの日記

技術メモ+日常ログ

平行投影と透視投影

原点に向かって, 平面 z = 1 に投影することを考える.
以下, 環境によってうまくも字が出ないかも.

透視投影

Euclid 空間
3 ⟶ ℝ2; [x, y, z] ↦ [xz, yz]

ただし, z ≤ 0 の点は投影しない.

射影空間

同次化して

3 ⟶ ℙ2; [x1⁄x4, x2⁄x4, x3⁄x4, 1] ↦ [(x1⁄x4)⁄(x3⁄x4), (x2⁄x4)⁄(x3⁄x4), 1]

整理すると

[x1, x2, x3, x4] ↦ [x1, x2, x3]

つまり, 射影空間から射影平面への透視投影は, x4 を無視するだけ.
この変換を行列で書けば以下のような 4×3 の行列となる.

\left[\begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\  0 & 0 & 1 & 0 \end{array}\right]

平行投影

Euclid 空間
3 ⟶ ℝ2; [x, y, z] ↦ [x, y]

ただし, z ≤ 0 の点は投影しない.

射影空間

同次化して

3 ⟶ ℙ2; [x1 ⁄ x4, x2 ⁄ x4, x3 ⁄ x4, 1] ↦ [x1 ⁄ x4, x2 ⁄ x4, 1]

整理すると

[x1, x2, x3, x4] ↦ [x1, x2, x4]

つまり, 射影空間から射影平面への平行投影は, x3 を無視するだけ.
この変換を行列で書けば以下のような 4×3 の行列となる.

\left[\begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\  0 & 0 & 0 & 1 \end{array}\right]