# 3 - Transformations

# Outline

  • 2์ฐจ์› ๋ณ€ํ™˜
    • Scaling, Rotation, Shearing, Reflection
    • Translation
  • ๋ณ€ํ™˜์˜ ์ข…๋ฅ˜
  • ๋ณ€ํ™˜์˜ ํ•ฉ์„ฑ๊ณผ Homogeneous Coordinates
  • ๋‘ ๊ฐ€์ง€ 3์ฐจ์› ์ง๊ต ์ขŒํ‘œ๊ณ„
  • 3์ฐจ์› Affine ๋ณ€ํ™˜

# What is Transformation?

  • Geometric Transformation
    • ๊ธฐํ•˜ํ•™์  object์˜ ์œ„์น˜, ๋ฐฉํ–ฅ, ํฌ๊ธฐ ๋˜๋Š” ํ˜•ํƒœ๋ฅผ ์ˆ˜ํ•™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ณผ์ •
      โ†’ โ€œ์ ๋“ค์˜ ์ง‘ํ•ฉ์„ ์ด๋™์‹œํ‚ค๋Š” ๊ฒƒโ€
    • ๋ณต์žกํ•œ ์žฅ๋ฉด๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ƒ์„ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ
    • Computer graphics์—์„œ ํ•„์ˆ˜์ ์ž„
  • ์˜ˆ์‹œ:
    • Translate
    • Rotate
    • Scale
    • Shear
    • Reflect

# Transformation

  • โ€œ์ ๋“ค์˜ ์ง‘ํ•ฉ์„ ์ด๋™์‹œํ‚ค๋Š” ๊ฒƒโ€
  • Transformation T๋Š” ๋ฒกํ„ฐ ๊ณต๊ฐ„ S์— ์žˆ๋Š” ์ž„์˜์˜ ์ž…๋ ฅ ๋ฒกํ„ฐ v๋ฅผ T(v)๋กœ ์‚ฌ์ƒ(ๅฏซๅƒ)ํ•จ
  • ์ˆ˜์‹ ํ‘œํ˜„: $S \rightarrow \{~ T(v) \mid v \in S ~\}$

# Linear Transformation

  • ํ–‰๋ ฌ ๊ณฑ์„ ํ†ตํ•ด Transformation์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ $$ T(\mathbf{v}) = M\mathbf{v} $$
  • ์ด๋Š” ํ–‰๋ ฌ ๊ณฑ์…ˆ์ด ์„ ํ˜• ์‚ฌ์ƒ(ๅฏซๅƒ)์„ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋˜๋ฏ€๋กœ
    linear transformation์ด๋ผ ๋ถ€๋ฆ„
  • Linear transformation์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•จ: $$ T(\mathbf{v}_1 + \mathbf{v}_2) \\ = T(\mathbf{v}_1) + T(\mathbf{v}_2), \quad T(c\mathbf{v}) \\ = cT(\mathbf{v}) $$
  • ํ–‰๋ ฌ $M$ ๋˜ํ•œ ๋™์ผํ•œ *์„ ํ˜•์„ฑ(linearity)*์„ ๋งŒ์กฑ: $$ M(\mathbf{v}_1 + \mathbf{v}_2) \\ = M\mathbf{v}_1 + M\mathbf{v}_2, \quad M(c\mathbf{v}) \\ = c(M\mathbf{v}) $$

# 2D Linear Transformations

  • 2ร—2 ํ–‰๋ ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ 2์ฐจ์› linear transformation์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ:
    • uniform scaling
    • non-uniform scaling
    • rotation
    • shearing
    • reflection

# 2D Linear Trans. โ€“ Uniform Scaling

  • x์ถ•๊ณผ y์ถ• ๋ชจ๋‘์—์„œ ๋™์ผํ•œ ๋น„์œจ๋กœ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ $$ \mathbf{S} = \begin{bmatrix} s & 0 \\ 0 & s \end{bmatrix} \\ \mathbf{p} = \begin{bmatrix} x \\ y \end{bmatrix} \quad\Rightarrow\quad \mathbf{p}' = \begin{bmatrix} sx \\ sy \end{bmatrix} $$
  • ์˜ˆ: ๋ฐฐ์œจ ( s = 1.5 )์ธ scaling์„ ์ ์šฉํ•  ๊ฒฝ์šฐ,
    $$ \begin{bmatrix} 1.5 & 0 \\ 0 & 1.5 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} 1.5x \\ 1.5y \end{bmatrix} $$

# 2D Linear Trans. โ€“ Nonuniform Scaling

  • x์ถ•๊ณผ y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๋น„์œจ๋กœ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ $$ \begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} s_xx \\ s_yy \end{bmatrix} $$

(์˜ˆ: $s_x$ = 1.5, $s_y$ = 0.8 โ†’ $x$์ถ• ๋ฐฉํ–ฅ์€ ํ™•๋Œ€, $y$์ถ• ๋ฐฉํ–ฅ์€ ์ถ•์†Œ)

# 2D Linear Trans. โ€“ Rotation

  • ํšŒ์ „์€ ํ–‰๋ ฌ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋”ฐ๋ผ์„œ ์„ ํ˜• ๋ณ€ํ™˜์ž„
  • ์–‘์˜ ๊ฐ๋„๋Š” ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ(CCW, Counter-Clockwise)์„ ์˜๋ฏธํ•จ $$ \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} x \cos \theta - y \sin \theta \\ x \sin \theta + y \cos \theta \end{bmatrix} $$

(์˜ˆ: $\theta = 30\degree$ โ†’ 30๋„ ๋ฐ˜์‹œ๊ณ„ ํšŒ์ „)

# Numbers in Matrices: Scaling, Rotation

  • ํ–‰๋ ฌ์˜ ๊ฐ ์ˆซ์ž๋Š” ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ๊นŒ?
  • ๋‹จ์œ„ ๋ฒกํ„ฐ$([1, 0]^T, [0, 1]^T)$์„ ๊ธฐ์ค€์œผ๋กœ scaling ๋˜๋Š” rotation ์‹œ ๊ฐ๊ฐ์˜ column vector๊ฐ€ ๋ณ€ํ™˜๋œ ์ถ•์˜ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋ƒ„
  • Canonical basis vectors: ์ง๊ต ์ขŒํ‘œ๊ณ„์—์„œ x, y์ถ• ๋ฐฉํ–ฅ ๋‹จ์œ„ ๋ฒกํ„ฐ
  • ๊ฒฐ๊ณผ์ ์œผ๋กœ, ๋ณ€ํ™˜๋œ ์ขŒํ‘œ๊ณ„์˜ ์ถ• ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋ƒ„
  • ํ–‰๋ ฌ์˜ column vector๋Š” ๊ทธ ํ–‰๋ ฌ์˜ column space๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” basis vectors
  • Column space: column vector๋“ค์˜ ์„ ํ˜• ๊ฒฐํ•ฉ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ฒกํ„ฐ์˜ ์ง‘ํ•ฉ

# 2D Linear Trans. โ€“ Reflection

  • Reflection์€ non-uniform scaling์˜ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์Œ
  • ์˜ˆ์‹œ: $x$์ถ• ๋ฐฉํ–ฅ reflection $$ \begin{bmatrix} -1 & 0\\ 0 & 1 \end{bmatrix} $$

# 2D Linear Trans. โ€“ Shearing

  • ๋ฌผ์ฒด๋ฅผ ์ธก๋ฉด์œผ๋กœ ๋ฐ€๊ธฐ(push sideways)
  • ์˜ˆ์‹œ: $x$์ถ• ๊ธฐ์ค€์œผ๋กœ $y$์— ๋น„๋ก€ํ•˜์—ฌ $x$ ์ด๋™ $$ \begin{bmatrix} -1 & 0\\ 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} x+ay\\ y \end{bmatrix} $$

# Identity Matrix

  • ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™˜๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ํ–‰๋ ฌ โ†’ "Doing nothing" $$ \begin{bmatrix} 1 & 0\\ 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} x\\ y \end{bmatrix} $$

(๋„ํ˜•์˜ ์œ„์น˜, ํฌ๊ธฐ, ๋ฐฉํ–ฅ์ด ์œ ์ง€๋จ)

# [Demo] 2D Linear Transformations

# Quiz 1

# 2D Translation

  • Translation์€ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ณ€ํ™˜:
    $T(\mathbf{v}) = \mathbf{v} + \mathbf{u}$
  • ์—ญ๋ณ€ํ™˜(Inverse):
    $T^{-1}(\mathbf{v}) = \mathbf{v} โˆ’ \mathbf{u}$

(๋„์‹: $\mathbf{v}$ ๋ฒกํ„ฐ์—์„œ $\mathbf{u}$๋งŒํผ ์ด๋™ํ•œ ๊ฒฐ๊ณผ๊ฐ€ $T(\mathbf{v})$)

# Is translation linear transformation?

  • ์•„๋‹ˆ์˜ค. ์„ ํ˜• ๋ณ€ํ™˜(linear transformation)์ด ์•„๋‹˜

  • ์„ ํ˜•์„ฑ(linearity)์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์Œ:
    $$ T(\mathbf{v}_1 + \mathbf{v}_2) \neq T(\mathbf{v}_1) + T(\mathbf{v}_2) \\ T(c\mathbf{v}) \neq cT(\mathbf{v}) $$

    ์˜ˆ:

    $$ cT(\mathbf{v}) = c(\mathbf{v} + \mathbf{b}) = c\mathbf{v} + c\mathbf{b} \\ \neq T(c\mathbf{v}) = c\mathbf{v} + \mathbf{b} $$

  • ๋ฒกํ„ฐ ๋ง์…ˆ์„ ์‚ฌ์šฉํ•ด ํ‘œํ˜„ ๊ฐ€๋Šฅ:
    $$ T(\mathbf{v}) = \mathbf{v} + \mathbf{u} $$

  • ์„ ํ˜• ๋ณ€ํ™˜๊ณผ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Œ:
    $$ T(\mathbf{v}) = M\mathbf{v} + \mathbf{u} $$

  • โ†’ Affine transformation

# Letโ€™s check again

  • Linear transformation
    • Scaling, Rotation, Reflection, Shearing
    • ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ
      $$ T(\mathbf{v}) = \mathbf{Mv} $$
  • Translation
    • ์„ ํ˜• ๋ณ€ํ™˜์ด ์•„๋‹˜
    • ๋ฒกํ„ฐ ๋ง์…ˆ์œผ๋กœ ํ‘œํ˜„๋จ
      $$ T(\mathbf{v}) = \mathbf{v} + \mathbf{u} $$
  • Affine transformation
    • ์„ ํ˜• ๋ณ€ํ™˜๊ณผ translation์„ ๊ฒฐํ•ฉํ•œ ํ˜•ํƒœ
      $$ T(\mathbf{v}) = \mathbf{Mv} + \mathbf{u} $$

# Rigid Transformations

  • ๋ชจ๋“  ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์œ ์ง€ํ•จ $$ |g(\mathbf{u}) - g(\mathbf{v})| = |\mathbf{u} - \mathbf{v}|, \\ \forall \mathbf{u}, \mathbf{v} \in \mathbb{R}^3 \quad (g: \text{rigid transform map}) $$
  • "Handedness"๋ฅผ ๋ณด์กดํ•จ:
    • ์„ ํ˜• ๋ณ€ํ™˜ ์ค‘ handedness๋ฅผ ๋ณด์กดํ•˜๋Š” ํšŒ์ „์˜ ์กฐ๊ฑด:
      $$ g(\mathbf{u}) \times g(\mathbf{v}) = g(\mathbf{u} \times \mathbf{v}), \\ \forall \mathbf{u}, \mathbf{v} \in \mathbb{R}^3 $$
      • Reflection์€ ๋ณด์กดํ•˜์ง€ ์•Š์Œ
    • Translation์€ ๋ฐฉํ–ฅ์„ ๋ฐ”๊พธ์ง€ ์•Š์œผ๋ฏ€๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ
  • Rigid transformation์˜ ์˜ˆ:
    • Translation
    • Identity
    • Rotation
  • ์ผ๋ถ€ ๋ฌธํ—Œ์—์„œ๋Š” reflection์„ rigid๋กœ ๋ถ„๋ฅ˜ํ•˜๊ธฐ๋„ ํ•˜๋‚˜, ๋ณธ ๊ฐ•์˜์—์„œ๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Œ

# Similarity Transformations

  • ๊ฐ๋„๋ฅผ ๋ณด์กดํ•จ
  • (rigid transformation๋„ ๊ฐ๋„ ๋ณด์กด ํฌํ•จ)
  • Similarity transformation์˜ ์˜ˆ:
    • Translation
    • Identity
    • Rotation
    • Uniform Scaling
  • ์ผ๋ถ€ ๋ฌธํ—Œ์—์„œ๋Š” reflection๋„ ํฌํ•จํ•˜๋‚˜, ๋ณธ ๊ฐ•์˜์—์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์Œ

# Linear Transformations

  • ์›์ ์„ ๋ณด์กดํ•จ
  • ํฌํ•จ๋˜๋Š” ๋ณ€ํ™˜๋“ค:
    • Translation
    • Identity
    • Rotation
    • Uniform Scaling
    • Scaling
    • Reflection
    • Shearing

# Affine Transformations

  • ํ‰ํ–‰์„ ์„ ์œ ์ง€ํ•จ
  • ์ง์„  ์ƒ์˜ ๊ฑฐ๋ฆฌ ๋น„์œจ์„ ์œ ์ง€ํ•จ

# Projective Transformations

  • ์ง์„ ์„ ๋ณด์กดํ•จ transformations

# Composition of Transformations

  • ์–ด๋–ค ๋ฌผ์ฒด์— T ๋ณ€ํ™˜์„ ์ ์šฉํ•œ ํ›„, S ๋ณ€ํ™˜์„ ์ถ”๊ฐ€ ์ ์šฉ: $$ \mathbf{p} \rightarrow T(\mathbf{p}) \rightarrow S(T(\mathbf{p})) = (S \circ T)(\mathbf{p}) $$
  • 2D linear transformation์˜ ํ•ฉ์„ฑ์€
    2ร—2 ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ: $$ T(\mathbf{p}) = M_T \mathbf{p}; \quad S(\mathbf{p}) = M_S \mathbf{p} $$ $$ (S \circ T)(\mathbf{p}) = M_S M_T \mathbf{p} \\ = (M_S M_T)\mathbf{p} = M_S (M_T \mathbf{p}) $$

# Order Matters!

  • ํ–‰๋ ฌ ๊ณฑ์…ˆ์€ ๊ฒฐํ•ฉ๋ฒ•์น™์€ ์„ฑ๋ฆฝํ•˜์ง€๋งŒ ๊ตํ™˜๋ฒ•์น™์€ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š์Œ: $$ (AB)C = A(BC) \\ AB \ne BA $$
  • ๋”ฐ๋ผ์„œ, ๋ณ€ํ™˜์˜ ์ ์šฉ ์ˆœ์„œ๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•จ

(์˜ˆ: Scale โ†’ Rotate vs Rotate โ†’ Scale ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฆ„)

# [Demo] Composition of Linear Transformations

# Problems when handling Translation as Vector Addition

  • ์„ ํ˜• ๋ณ€ํ™˜(ํšŒ์ „, ์Šค์ผ€์ผ ๋“ฑ)๊ณผ translation์„
    ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Œ
  • Affine ๋ณ€ํ™˜์˜ ํ•ฉ์„ฑ์€ ๋ณต์žกํ•ด์ง: $$ T(\mathbf{p}) = M_T \mathbf{p} + \mathbf{u}_T \\ S(\mathbf{p}) = M_S \mathbf{p} + \mathbf{u}_S $$ $$ (S \circ T)(\mathbf{p}) = M_S(M_T \mathbf{p} + \mathbf{u}_T) + \mathbf{u}_S \\ = (M_S M_T) \mathbf{p} + (M_S \mathbf{u}_T + \mathbf{u}_S) $$
  • ๋” ๊น”๋”ํ•œ ํ‘œํ˜„ ๋ฐฉ์‹์ด ํ•„์š”ํ•จ
    โ†’ Homogeneous coordinates

# Homogeneous Coordinates

  • ํ•ต์‹ฌ ์•„์ด๋””์–ด: 2D ์ ์„ 3D ์ขŒํ‘œ๊ณ„ ์ƒ์— ํ‘œํ˜„
  • ๋ฒกํ„ฐ์—๋Š” ์ถ”๊ฐ€ ์„ฑ๋ถ„($w$), ํ–‰๋ ฌ์—๋Š” ์ถ”๊ฐ€ ํ–‰/์—ด์„ ์ถ”๊ฐ€
    • ์ ์—๋Š” ํ•ญ์ƒ $w = 1$
    • 2D ์  $[x,~y]^T โ†’ [x,~y,~1]^T$
  • 2D linear transformation์˜ ํ‘œํ˜„: $$ \begin{bmatrix} a & b & 0 \\ c & d & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} ax + by \\ cx + dy \\ 1 \end{bmatrix} $$
  • 2D translation์˜ ํ‘œํ˜„: $$ \begin{bmatrix} 1 & 0 & t \\ 0 & 1 & s \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} x + t \\ y + s \\ 1 \end{bmatrix} $$
  • 2D affine transformation์˜ ํ‘œํ˜„: $$ \begin{bmatrix} m_{11} & m_{12} & u_x \\ m_{21} & m_{22} & u_y \\ 0 & 0 & 1 \end{bmatrix} $$
  • Affine transformation ํ•ฉ์„ฑ์€ 3ร—3 ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ: $$ T(\mathbf{p}) = M_T \mathbf{p} + \mathbf{u}_T \\ S(\mathbf{p}) = M_S \mathbf{p} + \mathbf{u}_S $$ โ†’ block ํ–‰๋ ฌ ํ‘œํ˜„: $$ T(\mathbf{p}) = \begin{bmatrix} M_T & \mathbf{u}_T \\ 0 & 1 \end{bmatrix}, \\ S(\mathbf{p}) = \begin{bmatrix} M_S & \mathbf{u}_S \\ 0 & 1 \end{bmatrix} $$ $$ (S \circ T)(\mathbf{p}) \\ = \begin{bmatrix} M_S & \mathbf{u}_S \\ 0 & 1 \end{bmatrix} \begin{bmatrix} M_T & \mathbf{u}_T \\ 0 & 1 \end{bmatrix} \begin{bmatrix} \mathbf{p} \\ 1 \end{bmatrix} \\ = \begin{bmatrix} (M_S M_T) \mathbf{p} + (M_S \mathbf{u}_T + \mathbf{u}_S) \\ 1 \end{bmatrix} $$
  • ๊ฒฐ๊ณผ๋Š” ์ด์ „ ๋ฐฉ์‹๊ณผ ๊ฐ™์ง€๋งŒ, ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ณ  ๊น”๋”ํ•จ

cf. ๊ธฐ์กด ํ‘œํ˜„๊ณผ ๋น„๊ต:
$(S \circ T)(\mathbf{p}) = M_S(M_T \mathbf{p} + \mathbf{u}_T) + \mathbf{u}_S$
$= (M_S M_T)\mathbf{p} + (M_S \mathbf{u}_T + \mathbf{u}_S)$

# [Demo] Composition of Affine Transformations in Homogeneous Coordinates

  • observablehq.com/@esperanc/transformation-demo (opens new window)
  • โ€˜+โ€™ ๋ฒ„ํŠผ์œผ๋กœ ๋‹ค์–‘ํ•œ ์ˆœ์„œ์˜ translation ๋ฐ linear transformation ์ถ”๊ฐ€
  • ์Šฌ๋ผ์ด๋”๋กœ ํ–‰๋ ฌ ๊ฐ’์˜ ๋ณ€ํ™”์™€ ๋„ํ˜• ๋ณ€ํ˜• ํ™•์ธ
  • ์ฃผ์˜: ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€๋œ ๋ณ€ํ™˜์ด ๊ฐ€์žฅ ๋จผ์ € ์ ์šฉ๋จ

# Summary: Homogeneous Coordinates in 2D

  • 2D ์ ์—๋Š” $(x,~y)^T$ ๋Œ€์‹  $(x,~y,~1)^T$ ์‚ฌ์šฉ
  • 2D linear transformation์—๋Š” 2ร—2 ํ–‰๋ ฌ ๋Œ€์‹  3ร—3 ํ–‰๋ ฌ ์‚ฌ์šฉ
  • 2D translation์—๋„ ๋ฒกํ„ฐ ๋ง์…ˆ ๋Œ€์‹  3ร—3 ํ–‰๋ ฌ ์‚ฌ์šฉ

โ†’ linear transformation๊ณผ translation์„ ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ!

# Quiz 2

# Now, Letโ€™s go to the 3D world!

  • Coordinate system (์ขŒํ‘œ๊ณ„)
    • Cartesian coordinate system (์ง๊ต์ขŒํ‘œ๊ณ„)
      • 2D ์ขŒํ‘œ๊ณ„ โ†’ z์ถ•์ด ํฌํ•จ๋œ 3D ์ขŒํ‘œ๊ณ„๋กœ ํ™•์žฅ๋จ

# Right-Handed and Left-Handed Coordinate Systems

  • ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ: Right-handed Cartesian Coordinates
ํ•ญ๋ชฉ Right-handed Left-handed
ํšŒ์ „ ๋ฐฉํ–ฅ ์ถ• ๊ธฐ์ค€ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ ์ถ• ๊ธฐ์ค€ ์‹œ๊ณ„ ๋ฐฉํ–ฅ
์‚ฌ์šฉ ์˜ˆ์‹œ OpenGL, Maya, Houdini, AutoCAD, Physics & Math DirectX, Unity, Unreal ๋“ฑ

(์ด๋ฏธ์ง€: ์˜ค๋ฅธ์† ๋ฒ•์น™๊ณผ ์™ผ์† ๋ฒ•์น™ ์„ค๋ช…)

# Point Representations in Cartesian & Homogeneous Coordinate System

# A 2D point is represented as:

  • Cartesian coordinate system: $$ \begin{bmatrix} p_x \\ p_y \end{bmatrix} $$
  • Homogeneous coordinate system: $$ \begin{bmatrix} p_x \\ p_y \\ 1 \end{bmatrix} $$

# A 3D point is represented as:

  • Cartesian coordinate system: $$ \begin{bmatrix} p_x \\ p_y \\ p_z \end{bmatrix} $$
  • Homogeneous coordinate system: $$ \begin{bmatrix} p_x \\ p_y \\ p_z \\ 1 \end{bmatrix} $$

# Review of Linear Transformations in 2D

  • 2D์—์„œ์˜ ์„ ํ˜• ๋ณ€ํ™˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ํ‘œํ˜„๋จ:

# 2x2 matrix (in Cartesian coordinates):

$$ \begin{bmatrix} m_{11} & m_{12} \\ m_{21} & m_{22} \end{bmatrix} \begin{bmatrix} p_x \\ p_y \end{bmatrix} $$

# or

# 3x3 matrix (in homogeneous coordinates):

$$ \begin{bmatrix} m_{11} & m_{12} & 0 \\ m_{21} & m_{22} & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} p_x \\ p_y \\ 1 \end{bmatrix} $$

# Linear Transformations in 3D

  • 3D์—์„œ์˜ ์„ ํ˜• ๋ณ€ํ™˜์€ ๋‹ค์Œ ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ํ‘œํ˜„๋จ:

    • 3x3 matrix (in Cartesian coordinates)
      ๋˜๋Š”
    • 4x4 matrix (in homogeneous coordinates)

    $$ \begin{bmatrix} m_{11} & m_{12} & m_{13} \\ m_{21} & m_{22} & m_{23} \\ m_{31} & m_{32} & m_{33} \end{bmatrix} \begin{bmatrix} p_x \\ p_y \\ p_z \end{bmatrix} \\ \text{or}\ \\ \begin{bmatrix} m_{11} & m_{12} & m_{13} & 0 \\ m_{21} & m_{22} & m_{23} & 0 \\ m_{31} & m_{32} & m_{33} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} p_x \\ p_y \\ p_z \\ 1 \end{bmatrix} $$

# Linear Transformations in 3D

Scaling (ํฌ๊ธฐ ์กฐ์ ˆ):

$$ S_s = \begin{bmatrix} S_x & 0 & 0 \\ 0 & S_y & 0 \\ 0 & 0 & S_z \end{bmatrix} \quad\text{(3D)} \\ S_s = \begin{bmatrix} S_x & 0 & 0 & 0 \\ 0 & S_y & 0 & 0 \\ 0 & 0 & S_z & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \quad\text{(3D-H)} $$

Shear (in $x$, based on $z$ position):

$$ H_{x,d} = \begin{bmatrix} 1 & d_y & d_z \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \\ \text{or} \\ H_{x,d} = \begin{bmatrix} 1 & d_y & d_z & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

# Linear Transformations in 3D

Rotation about $x$-axis:

$$ R_{x,\theta} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix} $$

Rotation about $y$-axis:

$$ R_{y,\theta} = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} $$

Rotation about $z$-axis:

$$ R_{z,\theta} = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

(์˜ค๋ฅธ์† ๋ฒ•์น™์— ๋”ฐ๋ผ z์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์œ„์—์„œ ์•„๋ž˜๋กœ ๋ณด๋Š” ์‹œ์ ์—์„œ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ ํšŒ์ „)

# Review of Translations in 2D

  • 2D์—์„œ์˜ Translation์€ ๋‹ค์Œ ๋‘ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ:

Vector addition (in Cartesian coordinates):

$$ \begin{bmatrix} p_x \\ p_y \end{bmatrix} + \begin{bmatrix} u_x \\ u_y \end{bmatrix} $$

Matrix multiplication (in homogeneous coordinates):

$$ \begin{bmatrix} 1 & 0 & u_x \\ 0 & 1 & u_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} p_x \\ p_y \\ 1 \end{bmatrix} $$

# Translations in 3D

  • 3D์—์„œ์˜ Translation๋„ ์œ ์‚ฌํ•˜๊ฒŒ ํ‘œํ˜„ ๊ฐ€๋Šฅ:

Vector addition (Cartesian coordinates):

$$ \begin{bmatrix} p_x \\ p_y \\ p_z \end{bmatrix} + \begin{bmatrix} u_x \\ u_y \\ u_z \end{bmatrix} $$

Matrix multiplication (homogeneous coordinates):

$$ \begin{bmatrix} 1 & 0 & 0 & u_x \\ 0 & 1 & 0 & u_y \\ 0 & 0 & 1 & u_z \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} p_x \\ p_y \\ p_z \\ 1 \end{bmatrix} $$

# Review of Affine Transformations in 2D

  • Homogeneous coordinates์—์„œ๋Š” 2D affine transformation์„ 3ร—3 ํ–‰๋ ฌ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ:

$$ \begin{bmatrix} m_{11} & m_{12} & u_x \\ m_{21} & m_{22} & u_y \\ 0 & 0 & 1 \end{bmatrix} $$

# Affine Transformations in 3D

  • Homogeneous coordinates์—์„œ๋Š” 3D affine transformation์„
    4ร—4 ํ–‰๋ ฌ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ:

$$ \begin{bmatrix} m_{11} & m_{12} & m_{13} & u_x \\ m_{21} & m_{22} & m_{23} & u_y \\ m_{31} & m_{32} & m_{33} & u_z \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

# Summary: Affine Transformation

  • $\mathbf{p}$๋ผ๋Š” ์  ์ง‘ํ•ฉ์— ๋Œ€ํ•ด affine transformation $\mathbf{M}$์„ ์ ์šฉํ•˜๋ฉด: $$ \mathbf{M} = \begin{bmatrix} m_{11} & m_{12} & m_{13} & u_1 \\ m_{21} & m_{22} & m_{23} & u_2 \\ m_{31} & m_{32} & m_{33} & u_3 \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

$$ \mathbf{p}_i' \leftarrow \mathbf{M} \mathbf{p}_i $$

$$ \mathbf{p}_1' \leftarrow \mathbf{M} \mathbf{p}_1 \\ \mathbf{p}_2' \leftarrow \mathbf{M} \mathbf{p}_2 \\ \mathbf{p}_3' \leftarrow \mathbf{M} \mathbf{p}_3 \\ \dots \\ \mathbf{p}_N' \leftarrow \mathbf{M} \mathbf{p}_N $$

# Summary: Composition of Affine Transformations

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ affine transformation (์˜ˆ: Mโ‚, Mโ‚‚)์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ฐ ์ ๋งˆ๋‹ค ๊ฐœ๋ณ„์ ์œผ๋กœ:

$$ \mathbf{p}_i'' \leftarrow \mathbf{M}_2 \mathbf{M}_1 \mathbf{p}_i $$

$$ \mathbf{p}_1'' \leftarrow \mathbf{M}_2 \mathbf{M}_1 \mathbf{p}_1 \\ \mathbf{p}_2'' \leftarrow \mathbf{M}_2 \mathbf{M}_1 \mathbf{p}_2 \\ \mathbf{p}_3'' \leftarrow \mathbf{M}_2 \mathbf{M}_1 \mathbf{p}_3 \\ \dots \\ \mathbf{p}_N'' \leftarrow \mathbf{M}_2 \mathbf{M}_1 \mathbf{p}_N $$