• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
  • Algorithm

    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ
    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • C++ std::vector ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
  • Ubuntu

    • ๋ฆฌ๋ˆ…์Šค ์šฐ๋ถ„ํˆฌ GRUB ํฐํŠธ ๋ณ€๊ฒฝ
    • ์šฐ๋ถ„ํˆฌ ์ด๋ฏธ์ง€ ๋น„๋””์˜ค ์ธ๋„ค์ผ(๋ฏธ๋ฆฌ๋ณด๊ธฐ) ์•ˆ ๋ณด์ž„ ๋ฌธ์ œ ํ•ด๊ฒฐ
    • Wine ํ™˜๊ฒฝ์—์„œ ์นด์นด์˜คํ†ก ์‹คํ–‰ ์‹œ explorer.exe ๋œจ์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฒ•
    • ์šฐ๋ถ„ํˆฌ Wine ์นด์นด์˜คํ†ก ์‚ฌ์ง„ ์ด๋ฏธ์ง€ ์Šคํฌ๋ฆฐ์ƒท ๋ถ™์—ฌ๋„ฃ๊ธฐ
    • Wine ์นด์นด์˜คํ†ก ์ด๋ชจ์ง€ ๊นจ์ง ๋ฌธ์ œ ํ•ด๊ฒฐ
    • Ubuntu ์œˆ๋„์šฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋„๊ธฐ
  • Wellness

    • ์ฐจ์ „์žํ”ผ (Psyllium Husk)
    • ์—‘์ŠคํŠธ๋ผ ๋ฒ„์ง„ ์˜ฌ๋ฆฌ๋ธŒ์œ  (Extra Virgin Olive Oil)
    • ์ž๊ฐ€๋น„๊ฐ•์„ธ์ฒ™ (Nasal Irrigation)
    • QCY HT08 (MeloBuds Pro Plus)
    • ์ฝ˜์„œํƒ€ (Concerta)
    • ์ธ๋ฐ๋†€ (Inderal)
    • ์„คํŠธ๋ž„๋ฆฐ (Sertraline)
    • ๋ฉœ๋ผํ† ๋‹Œ (Melatonin)
    • ์น˜๊ฒฝ๋ถ€ ๋งˆ๋ชจ์ฆ
    • ๋ฐ”๋ฒจ ์Šค์ฟผํŠธ (Barbell Squat)
  • Humanities

    • Nordvik, Russia
    • North Sentinel Island
    • ๋กฑ๊ณ ๋กฑ๊ณ (Rongorongo)
    • ๋ฐ”๋กœํฌ ์Œ์•… (Baroque Music)
  • Design

    • ๊ตฌ๊ธ€์˜ ์•„์ด์ฝ˜ ๋Œ€๊ฐœํŽธ โ€” 6๋…„ ๋งŒ์˜ ์‹ค์ˆ˜ ์ธ์ •
    • ์ œ๋Ÿด๋“œ ์  ํƒ€ โ€” ๋Ÿญ์…”๋ฆฌ ์Šคํฌ์ธ  ์›Œ์น˜์˜ ์ฐฝ์‹œ์ž
    • ๋ฐ”์šฐํ•˜์šฐ์Šค โ€” ํ˜„๋Œ€ ๋””์ž์ธ์˜ ์›์ 
  • Brands

    • NOMOS Glashรผtte
    • Frรฉdรฉrique Constant
    • KZ (Knowledge Zenith)
    • ์—์ŠคํŠธ๋ผ (AESTURA)
    • JINHAO (้‡‘่ฑช)
    • Herman Miller
    • ๋ฐ์Šค์ปค (DESKER)
    • ๋ฌด์‹ ์‚ฌ ์Šคํƒ ๋‹ค๋“œ (Musinsa Standard)
  • Finance

    • ํ˜„๋Œ€์นด๋“œ ZERO โ€” Edition2 vs Edition3 ๋น„๊ต
    • ์‹ ํ•œ์นด๋“œ ์ฒ˜์Œ
    • S&P 500 ETF ํˆฌ์ž ๊ฐ€์ด๋“œ
    • ํŒŒํ‚นํ†ต์žฅ vs CMA ํ†ต์žฅ
    • ๋ฒ„ํฌ์…” ํ•ด์„œ์›จ์ด (Berkshire Hathaway)
    • ๋น„ํŠธ์ฝ”์ธ(Bitcoin)
  • Products

    • ์˜ค๋””์˜ค ์ธํ„ฐํŽ˜์ด์Šค (Audio Interface)
    • ์ฟ ๋ฃจํ† ๊ฐ€ (KURUTOGA)
    • CX31993 DAC ๋™๊ธ€
    • ํด๋ Œ์ง• ๋ฐ€ํฌ (Cleansing Milk)
    • ํ”ผ์ ฏ ํ† ์ด (Fidget Toy)
    • ThinkPad
  • Programming Languages

    • 8.0. Statement Level Control Structures
    • 8. Subprogram
    • 9. Implementing Subprogram
    • 10.1. Abstract Data Types and Encapsulation Constructs
    • 10.2. Support for Object Oriented Programming
    • 11. Concurrency
    • 12. FPL (1)
    • 13. FPL (2)
    • 14. Exception Handling and Event Handling
    • Final Exam

3 - Transformations

์ž‘์„ฑ 2026. 6. 12.ยท์ˆ˜์ • 2026. 6. 12.

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โ†’ย T(v)โˆฃvโˆˆSย S \rightarrow \\{~ T(v) \mid v \in S ~\\}Sโ†’ย T(v)โˆฃvโˆˆSย 

Linear Transformation

  • ํ–‰๋ ฌ ๊ณฑ์„ ํ†ตํ•ด Transformation์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ

    T(v)=MvT(\mathbf{v}) = M\mathbf{v} T(v)=Mv

  • ์ด๋Š” ํ–‰๋ ฌ ๊ณฑ์…ˆ์ด ์„ ํ˜• ์‚ฌ์ƒ(ๅฏซๅƒ)์„ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋˜๋ฏ€๋กœ
    linear transformation์ด๋ผ ๋ถ€๋ฆ„
  • Linear transformation์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•จ:

    T(v1+v2)=T(v1)+T(v2),T(cv)=cT(v)T(\mathbf{v}_1 + \mathbf{v}_2) \\ = T(\mathbf{v}_1) + T(\mathbf{v}_2), \quad T(c\mathbf{v}) \\ = cT(\mathbf{v}) T(v1โ€‹+v2โ€‹)=T(v1โ€‹)+T(v2โ€‹),T(cv)=cT(v)

  • ํ–‰๋ ฌ MMM ๋˜ํ•œ ๋™์ผํ•œ *์„ ํ˜•์„ฑ(linearity)*์„ ๋งŒ์กฑ:

    M(v1+v2)=Mv1+Mv2,M(cv)=c(Mv)M(\mathbf{v}_1 + \mathbf{v}_2) \\ = \mathbf{M}\mathbf{v}_1 + M\mathbf{v}_2, \quad M(c\mathbf{v}) \\ = c(\mathbf{M}\mathbf{v}) M(v1โ€‹+v2โ€‹)=Mv1โ€‹+Mv2โ€‹,M(cv)=c(Mv)

2D Linear Transformations

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

2D Linear Trans. โ€“ Uniform Scaling

  • x์ถ•๊ณผ y์ถ• ๋ชจ๋‘์—์„œ ๋™์ผํ•œ ๋น„์œจ๋กœ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ

S=[s00s]p=[xy]โ‡’pโ€ฒ=[sxsy]\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=[s0โ€‹0sโ€‹]p=[xyโ€‹]โ‡’pโ€ฒ=[sxsyโ€‹]

  • ์˜ˆ: ๋ฐฐ์œจ ( s = 1.5 )์ธ scaling์„ ์ ์šฉํ•  ๊ฒฝ์šฐ,

[1.5001.5][xy]=[1.5x1.5y]\begin{bmatrix} 1.5 & 0 \\ 0 & 1.5 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} 1.5x \\ 1.5y \end{bmatrix} [1.50โ€‹01.5โ€‹][xyโ€‹]=[1.5x1.5yโ€‹]

2D Linear Trans. โ€“ Nonuniform Scaling

  • x์ถ•๊ณผ y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๋น„์œจ๋กœ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ

[sx00sy][xy]=[sxxsyy]\begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} s_xx \\ s_yy \end{bmatrix} [sxโ€‹0โ€‹0syโ€‹โ€‹][xyโ€‹]=[sxโ€‹xsyโ€‹yโ€‹]

(์˜ˆ: sxs_xsxโ€‹ = 1.5, sys_ysyโ€‹ = 0.8 โ†’ xxx์ถ• ๋ฐฉํ–ฅ์€ ํ™•๋Œ€, yyy์ถ• ๋ฐฉํ–ฅ์€ ์ถ•์†Œ)

2D Linear Trans. โ€“ Rotation

  • ํšŒ์ „์€ ํ–‰๋ ฌ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋”ฐ๋ผ์„œ ์„ ํ˜• ๋ณ€ํ™˜์ž„
  • ์–‘์˜ ๊ฐ๋„๋Š” ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ(CCW, Counter-Clockwise)์„ ์˜๋ฏธํ•จ

[cosโกฮธโˆ’sinโกฮธsinโกฮธcosโกฮธ][xy]=[xcosโกฮธโˆ’ysinโกฮธxsinโกฮธ+ycosโกฮธ]\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} [cosฮธsinฮธโ€‹โˆ’sinฮธcosฮธโ€‹][xyโ€‹]=[xcosฮธโˆ’ysinฮธxsinฮธ+ycosฮธโ€‹]

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

Numbers in Matrices: Scaling, Rotation

  • ํ–‰๋ ฌ์˜ ๊ฐ ์ˆซ์ž๋Š” ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ๊นŒ?
  • ๋‹จ์œ„ ๋ฒกํ„ฐ([1,0]T,[0,1]T)([1, 0]^T, [0, 1]^T)([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์˜ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์Œ
  • ์˜ˆ์‹œ: xxx์ถ• ๋ฐฉํ–ฅ reflection

[โˆ’1001]\begin{bmatrix} -1 & 0\\ 0 & 1 \end{bmatrix} [โˆ’10โ€‹01โ€‹]

2D Linear Trans. โ€“ Shearing

  • ๋ฌผ์ฒด๋ฅผ ์ธก๋ฉด์œผ๋กœ ๋ฐ€๊ธฐ(push sideways)
  • ์˜ˆ์‹œ: xxx์ถ• ๊ธฐ์ค€์œผ๋กœ yyy์— ๋น„๋ก€ํ•˜์—ฌ xxx ์ด๋™

[โˆ’1001][xy]=[x+ayy]\begin{bmatrix} -1 & 0\\ 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} x+ay\\ y \end{bmatrix} [โˆ’10โ€‹01โ€‹][xyโ€‹]=[x+ayyโ€‹]

Identity Matrix

  • ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™˜๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ํ–‰๋ ฌ โ†’ "Doing nothing"

[1001][xy]=[xy]\begin{bmatrix} 1 & 0\\ 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} x\\ y \end{bmatrix} [10โ€‹01โ€‹][xyโ€‹]=[xyโ€‹]

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

[Demo] 2D Linear Transformations

  • integral-domain.org/lwilliams/Applets/algebra/linearTransformations.php
  • ํ–‰๋ ฌ ์š”์†Œ์˜ ๊ฐ’์„ ๋ฐ”๊ฟ”๋ณด์„ธ์š”
  • ๋‹ค์–‘ํ•œ ๋ณ€ํ™˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋ณด์„ธ์š”

Quiz 1

2D Translation

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

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

Is translation linear transformation?

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

  • ์„ ํ˜•์„ฑ(linearity)์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์Œ:

    T(v1+v2)โ‰ T(v1)+T(v2)T(cv)โ‰ cT(v)T(\mathbf{v}_1 + \mathbf{v}_2) \neq T(\mathbf{v}_1) + T(\mathbf{v}_2) \\\\ T(c\mathbf{v}) \neq cT(\mathbf{v}) T(v1โ€‹+v2โ€‹)๎€ =T(v1โ€‹)+T(v2โ€‹)T(cv)๎€ =cT(v)

    ์˜ˆ:

    cT(v)=c(v+b)=cv+cbโ‰ T(cv)=cv+bcT(\mathbf{v}) = c(\mathbf{v} + \mathbf{b}) = c\mathbf{v} + c\mathbf{b} \\\\ \neq T(c\mathbf{v}) = c\mathbf{v} + \mathbf{b} cT(v)=c(v+b)=cv+cb๎€ =T(cv)=cv+b

  • ๋ฒกํ„ฐ ๋ง์…ˆ์„ ์‚ฌ์šฉํ•ด ํ‘œํ˜„ ๊ฐ€๋Šฅ:

    T(v)=v+u T(\mathbf{v}) = \mathbf{v} + \mathbf{u} T(v)=v+u

  • ์„ ํ˜• ๋ณ€ํ™˜๊ณผ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Œ:

    T(v)=Mv+u T(\mathbf{v}) = M\mathbf{v} + \mathbf{u} T(v)=Mv+u

  • โ†’ Affine transformation

Letโ€™s check again

  • Linear transformation
    • Scaling, Rotation, Reflection, Shearing
    • ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ

    T(v)=Mv T(\mathbf{v}) = \mathbf{Mv} T(v)=Mv

  • Translation
    • ์„ ํ˜• ๋ณ€ํ™˜์ด ์•„๋‹˜
    • ๋ฒกํ„ฐ ๋ง์…ˆ์œผ๋กœ ํ‘œํ˜„๋จ

    T(v)=v+u T(\mathbf{v}) = \mathbf{v} + \mathbf{u} T(v)=v+u

  • Affine transformation
    • ์„ ํ˜• ๋ณ€ํ™˜๊ณผ translation์„ ๊ฒฐํ•ฉํ•œ ํ˜•ํƒœ

    T(v)=Mv+u T(\mathbf{v}) = \mathbf{Mv} + \mathbf{u} T(v)=Mv+u

Rigid Transformations

  • ๋ชจ๋“  ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์œ ์ง€ํ•จ

    โˆฅg(u)โˆ’g(v)โˆฅ=โˆฅuโˆ’vโˆฅ,โˆ€u,vโˆˆR3(g:rigidย transformย map)\|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}) โˆฅg(u)โˆ’g(v)โˆฅ=โˆฅuโˆ’vโˆฅ,โˆ€u,vโˆˆR3(g:rigidย transformย map)

  • "Handedness"๋ฅผ ๋ณด์กดํ•จ:
    • ์„ ํ˜• ๋ณ€ํ™˜ ์ค‘ handedness๋ฅผ ๋ณด์กดํ•˜๋Š” ํšŒ์ „์˜ ์กฐ๊ฑด:

      g(u)ร—g(v)=g(uร—v),โˆ€u,vโˆˆR3g(\mathbf{u}) \times g(\mathbf{v}) = g(\mathbf{u} \times \mathbf{v}), \\\\ \forall \mathbf{u}, \mathbf{v} \in \mathbb{R}^3 g(u)ร—g(v)=g(uร—v),โˆ€u,vโˆˆR3

      • 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 ๋ณ€ํ™˜์„ ์ถ”๊ฐ€ ์ ์šฉ:

    pโ†’T(p)โ†’S(T(p))=(Sโˆ˜T)(p)\mathbf{p} \rightarrow T(\mathbf{p}) \rightarrow S(T(\mathbf{p})) = (S \circ T)(\mathbf{p}) pโ†’T(p)โ†’S(T(p))=(Sโˆ˜T)(p)

  • 2D linear transformation์˜ ํ•ฉ์„ฑ์€
    2ร—2 ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ:

    T(p)=MTp;S(p)=MSpT(\mathbf{p}) = M_T \mathbf{p}; \quad S(\mathbf{p}) = M_S \mathbf{p} T(p)=MTโ€‹p;S(p)=MSโ€‹p

    (Sโˆ˜T)(p)=MSMTp=(MSMT)p=MS(MTp)(S \circ T)(\mathbf{p}) = M_S M_T \mathbf{p} \\\\ = (M_S M_T)\mathbf{p} = M_S (M_T \mathbf{p}) (Sโˆ˜T)(p)=MSโ€‹MTโ€‹p=(MSโ€‹MTโ€‹)p=MSโ€‹(MTโ€‹p)

Order Matters!

  • ํ–‰๋ ฌ ๊ณฑ์…ˆ์€ ๊ฒฐํ•ฉ๋ฒ•์น™์€ ์„ฑ๋ฆฝํ•˜์ง€๋งŒ ๊ตํ™˜๋ฒ•์น™์€ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š์Œ:

    (AB)C=A(BC)ABโ‰ BA(AB)C = A(BC) \\\\ AB \ne BA (AB)C=A(BC)AB๎€ =BA

  • ๋”ฐ๋ผ์„œ, ๋ณ€ํ™˜์˜ ์ ์šฉ ์ˆœ์„œ๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•จ

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

[Demo] Composition of Linear Transformations

  • integral-domain.org/lwilliams/Applets/algebra/linearTransformations.php
  • identity matrix๋กœ ์ดˆ๊ธฐํ™” (1 0 0 1 ์ž…๋ ฅ)
  • "Compose Transformations" ๋ฒ„ํŠผ ํด๋ฆญ
  • ๋‘ ๊ฐœ์˜ ๋ณ€ํ™˜์„ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆœ์„œ๋กœ ์ ์šฉํ•ด๋ณด๊ธฐ

Problems when handling Translation as Vector Addition

  • ์„ ํ˜• ๋ณ€ํ™˜(ํšŒ์ „, ์Šค์ผ€์ผ ๋“ฑ)๊ณผ translation์„
    ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Œ
  • Affine ๋ณ€ํ™˜์˜ ํ•ฉ์„ฑ์€ ๋ณต์žกํ•ด์ง:

T(p)=MTp+uTS(p)=MSp+uST(\mathbf{p}) = M_T \mathbf{p} + \mathbf{u}_T \\\\ S(\mathbf{p}) = M_S \mathbf{p} + \mathbf{u}_S T(p)=MTโ€‹p+uTโ€‹S(p)=MSโ€‹p+uSโ€‹

(Sโˆ˜T)(p)=MS(MTp+uT)+uS=(MSMT)p+(MSuT+uS)(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) (Sโˆ˜T)(p)=MSโ€‹(MTโ€‹p+uTโ€‹)+uSโ€‹=(MSโ€‹MTโ€‹)p+(MSโ€‹uTโ€‹+uSโ€‹)

  • ๋” ๊น”๋”ํ•œ ํ‘œํ˜„ ๋ฐฉ์‹์ด ํ•„์š”ํ•จ
    โ†’ Homogeneous coordinates

Homogeneous Coordinates

  • ํ•ต์‹ฌ ์•„์ด๋””์–ด: 2D ์ ์„ 3D ์ขŒํ‘œ๊ณ„ ์ƒ์— ํ‘œํ˜„
  • ๋ฒกํ„ฐ์—๋Š” ์ถ”๊ฐ€ ์„ฑ๋ถ„(www), ํ–‰๋ ฌ์—๋Š” ์ถ”๊ฐ€ ํ–‰/์—ด์„ ์ถ”๊ฐ€
    • ์ ์—๋Š” ํ•ญ์ƒ w=1w = 1w=1
    • 2D ์  [x,ย y]Tโ†’[x,ย y,ย 1]T[x,~y]^T โ†’ [x,~y,~1]^T[x,ย y]Tโ†’[x,ย y,ย 1]T
  • 2D linear transformation์˜ ํ‘œํ˜„:

    [ab0cd0001][xy1]=[ax+bycx+dy1]\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} โ€‹ac0โ€‹bd0โ€‹001โ€‹โ€‹โ€‹xy1โ€‹โ€‹=โ€‹ax+bycx+dy1โ€‹โ€‹

  • 2D translation์˜ ํ‘œํ˜„:

    [10t01s001][xy1]=[x+ty+s1]\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} โ€‹100โ€‹010โ€‹ts1โ€‹โ€‹โ€‹xy1โ€‹โ€‹=โ€‹x+ty+s1โ€‹โ€‹

  • 2D affine transformation์˜ ํ‘œํ˜„:

    [m11m12uxm21m22uy001]\begin{bmatrix} m_{11} & m_{12} & u_x \\ m_{21} & m_{22} & u_y \\ 0 & 0 & 1 \end{bmatrix} โ€‹m11โ€‹m21โ€‹0โ€‹m12โ€‹m22โ€‹0โ€‹uxโ€‹uyโ€‹1โ€‹โ€‹

  • Affine transformation ํ•ฉ์„ฑ์€ 3ร—3 ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ:

T(p)=MTp+uTS(p)=MSp+uST(\mathbf{p}) = M_T \mathbf{p} + \mathbf{u}_T \\ S(\mathbf{p}) = M_S \mathbf{p} + \mathbf{u}_S T(p)=MTโ€‹p+uTโ€‹S(p)=MSโ€‹p+uSโ€‹

โ†’ block ํ–‰๋ ฌ ํ‘œํ˜„:

T(p)=[MTuT01],S(p)=[MSuS01]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} T(p)=[MTโ€‹0โ€‹uTโ€‹1โ€‹],S(p)=[MSโ€‹0โ€‹uSโ€‹1โ€‹]

(Sโˆ˜T)(p)=[MSuS01][MTuT01][p1]=[(MSMT)p+(MSuT+uS)1](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} (Sโˆ˜T)(p)=[MSโ€‹0โ€‹uSโ€‹1โ€‹][MTโ€‹0โ€‹uTโ€‹1โ€‹][p1โ€‹]=[(MSโ€‹MTโ€‹)p+(MSโ€‹uTโ€‹+uSโ€‹)1โ€‹]

  • ๊ฒฐ๊ณผ๋Š” ์ด์ „ ๋ฐฉ์‹๊ณผ ๊ฐ™์ง€๋งŒ, ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ณ  ๊น”๋”ํ•จ

cf. ๊ธฐ์กด ํ‘œํ˜„๊ณผ ๋น„๊ต:
(Sโˆ˜T)(p)=MS(MTp+uT)+uS(S \circ T)(\mathbf{p}) = M_S(M_T \mathbf{p} + \mathbf{u}_T) + \mathbf{u}_S(Sโˆ˜T)(p)=MSโ€‹(MTโ€‹p+uTโ€‹)+uSโ€‹
=(MSMT)p+(MSuT+uS)= (M_S M_T)\mathbf{p} + (M_S \mathbf{u}_T + \mathbf{u}_S)=(MSโ€‹MTโ€‹)p+(MSโ€‹uTโ€‹+uSโ€‹)

[Demo] Composition of Affine Transformations in Homogeneous Coordinates

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

Summary: Homogeneous Coordinates in 2D

  • 2D ์ ์—๋Š” (x,ย y)T(x,~y)^T(x,ย y)T ๋Œ€์‹  (x,ย y,ย 1)T(x,~y,~1)^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-handedLeft-handed
ํšŒ์ „ ๋ฐฉํ–ฅ์ถ• ๊ธฐ์ค€ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์ถ• ๊ธฐ์ค€ ์‹œ๊ณ„ ๋ฐฉํ–ฅ
์‚ฌ์šฉ ์˜ˆ์‹œOpenGL, Maya, Houdini, AutoCAD, Physics & MathDirectX, Unity, Unreal ๋“ฑ

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

Point Representations in Cartesian & Homogeneous Coordinate System

A 2D point is represented as:

  • Cartesian coordinate system:

    [pxpy]\begin{bmatrix} p_x \\ p_y \end{bmatrix} [pxโ€‹pyโ€‹โ€‹]

  • Homogeneous coordinate system:

    [pxpy1]\begin{bmatrix} p_x \\ p_y \\ 1 \end{bmatrix} โ€‹pxโ€‹pyโ€‹1โ€‹โ€‹

A 3D point is represented as:

  • Cartesian coordinate system:

    [pxpypz]\begin{bmatrix} p_x \\ p_y \\ p_z \end{bmatrix} โ€‹pxโ€‹pyโ€‹pzโ€‹โ€‹โ€‹

  • Homogeneous coordinate system:

    [pxpypz1]\begin{bmatrix} p_x \\ p_y \\ p_z \\ 1 \end{bmatrix} โ€‹pxโ€‹pyโ€‹pzโ€‹1โ€‹โ€‹

Review of Linear Transformations in 2D

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

2x2 matrix (in Cartesian coordinates):

[m11m12m21m22][pxpy]\begin{bmatrix} m_{11} & m_{12} \\ m_{21} & m_{22} \end{bmatrix} \begin{bmatrix} p_x \\ p_y \end{bmatrix} [m11โ€‹m21โ€‹โ€‹m12โ€‹m22โ€‹โ€‹][pxโ€‹pyโ€‹โ€‹]

or

3x3 matrix (in homogeneous coordinates):

[m11m120m21m220001][pxpy1]\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} โ€‹m11โ€‹m21โ€‹0โ€‹m12โ€‹m22โ€‹0โ€‹001โ€‹โ€‹โ€‹pxโ€‹pyโ€‹1โ€‹โ€‹

Linear Transformations in 3D

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

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

    [m11m12m13m21m22m23m31m32m33][pxpypz]orย [m11m12m130m21m22m230m31m32m3300001][pxpypz1]\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} โ€‹m11โ€‹m21โ€‹m31โ€‹โ€‹m12โ€‹m22โ€‹m32โ€‹โ€‹m13โ€‹m23โ€‹m33โ€‹โ€‹โ€‹โ€‹pxโ€‹pyโ€‹pzโ€‹โ€‹โ€‹orย โ€‹m11โ€‹m21โ€‹m31โ€‹0โ€‹m12โ€‹m22โ€‹m32โ€‹0โ€‹m13โ€‹m23โ€‹m33โ€‹0โ€‹0001โ€‹โ€‹โ€‹pxโ€‹pyโ€‹pzโ€‹1โ€‹โ€‹

Linear Transformations in 3D

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

Ss=[Sx000Sy000Sz](3D)Ss=[Sx0000Sy0000Sz00001](3D-H)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)} Ssโ€‹=โ€‹Sxโ€‹00โ€‹0Syโ€‹0โ€‹00Szโ€‹โ€‹โ€‹(3D)Ssโ€‹=โ€‹Sxโ€‹000โ€‹0Syโ€‹00โ€‹00Szโ€‹0โ€‹0001โ€‹โ€‹(3D-H)

Shear (in xxx, based on zzz position):

Hx,d=[1dydz010001]orHx,d=[1dydz0010000100001]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} Hx,dโ€‹=โ€‹100โ€‹dyโ€‹10โ€‹dzโ€‹01โ€‹โ€‹orHx,dโ€‹=โ€‹1000โ€‹dyโ€‹100โ€‹dzโ€‹010โ€‹0001โ€‹โ€‹

Linear Transformations in 3D

Rotation about xxx-axis:

Rx,ฮธ=[1000cosโกฮธโˆ’sinโกฮธ0sinโกฮธcosโกฮธ]R_{x,\theta} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix} Rx,ฮธโ€‹=โ€‹100โ€‹0cosฮธsinฮธโ€‹0โˆ’sinฮธcosฮธโ€‹โ€‹

Rotation about yyy-axis:

Ry,ฮธ=[cosโกฮธ0sinโกฮธ010โˆ’sinโกฮธ0cosโกฮธ]R_{y,\theta} = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} Ry,ฮธโ€‹=โ€‹cosฮธ0โˆ’sinฮธโ€‹010โ€‹sinฮธ0cosฮธโ€‹โ€‹

Rotation about zzz-axis:

Rz,ฮธ=[cosโกฮธโˆ’sinโกฮธ0sinโกฮธcosโกฮธ0001]R_{z,\theta} = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} Rz,ฮธโ€‹=โ€‹cosฮธsinฮธ0โ€‹โˆ’sinฮธcosฮธ0โ€‹001โ€‹โ€‹

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

Review of Translations in 2D

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

Vector addition (in Cartesian coordinates):

[pxpy]+[uxuy]\begin{bmatrix} p_x \\ p_y \end{bmatrix} + \begin{bmatrix} u_x \\ u_y \end{bmatrix} [pxโ€‹pyโ€‹โ€‹]+[uxโ€‹uyโ€‹โ€‹]

Matrix multiplication (in homogeneous coordinates):

[10ux01uy001][pxpy1]\begin{bmatrix} 1 & 0 & u_x \\ 0 & 1 & u_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} p_x \\ p_y \\ 1 \end{bmatrix} โ€‹100โ€‹010โ€‹uxโ€‹uyโ€‹1โ€‹โ€‹โ€‹pxโ€‹pyโ€‹1โ€‹โ€‹

Translations in 3D

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

Vector addition (Cartesian coordinates):

[pxpypz]+[uxuyuz]\begin{bmatrix} p_x \\ p_y \\ p_z \end{bmatrix} + \begin{bmatrix} u_x \\ u_y \\ u_z \end{bmatrix} โ€‹pxโ€‹pyโ€‹pzโ€‹โ€‹โ€‹+โ€‹uxโ€‹uyโ€‹uzโ€‹โ€‹โ€‹

Matrix multiplication (homogeneous coordinates):

[100ux010uy001uz0001][pxpypz1]\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} โ€‹1000โ€‹0100โ€‹0010โ€‹uxโ€‹uyโ€‹uzโ€‹1โ€‹โ€‹โ€‹pxโ€‹pyโ€‹pzโ€‹1โ€‹โ€‹

Review of Affine Transformations in 2D

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

[m11m12uxm21m22uy001]\begin{bmatrix} m_{11} & m_{12} & u_x \\ m_{21} & m_{22} & u_y \\ 0 & 0 & 1 \end{bmatrix} โ€‹m11โ€‹m21โ€‹0โ€‹m12โ€‹m22โ€‹0โ€‹uxโ€‹uyโ€‹1โ€‹โ€‹

Affine Transformations in 3D

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

[m11m12m13uxm21m22m23uym31m32m33uz0001]\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} โ€‹m11โ€‹m21โ€‹m31โ€‹0โ€‹m12โ€‹m22โ€‹m32โ€‹0โ€‹m13โ€‹m23โ€‹m33โ€‹0โ€‹uxโ€‹uyโ€‹uzโ€‹1โ€‹โ€‹

Summary: Affine Transformation

  • p\mathbf{p}p๋ผ๋Š” ์  ์ง‘ํ•ฉ์— ๋Œ€ํ•ด affine transformation M\mathbf{M}M์„ ์ ์šฉํ•˜๋ฉด:

M=[m11m12m13u1m21m22m23u2m31m32m33u30001]\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} M=โ€‹m11โ€‹m21โ€‹m31โ€‹0โ€‹m12โ€‹m22โ€‹m32โ€‹0โ€‹m13โ€‹m23โ€‹m33โ€‹0โ€‹u1โ€‹u2โ€‹u3โ€‹1โ€‹โ€‹

piโ€ฒโ†Mpi\mathbf{p}_i' \leftarrow \mathbf{M} \mathbf{p}_i piโ€ฒโ€‹โ†Mpiโ€‹

p1โ€ฒโ†Mp1p2โ€ฒโ†Mp2p3โ€ฒโ†Mp3โ€ฆpNโ€ฒโ†MpN\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 p1โ€ฒโ€‹โ†Mp1โ€‹p2โ€ฒโ€‹โ†Mp2โ€‹p3โ€ฒโ€‹โ†Mp3โ€‹โ€ฆpNโ€ฒโ€‹โ†MpNโ€‹

Summary: Composition of Affine Transformations

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

piโ€ฒโ€ฒโ†M2M1pi\mathbf{p}_i'' \leftarrow \mathbf{M}_2 \mathbf{M}_1 \mathbf{p}_i piโ€ฒโ€ฒโ€‹โ†M2โ€‹M1โ€‹piโ€‹

p1โ€ฒโ€ฒโ†M2M1p1p2โ€ฒโ€ฒโ†M2M1p2p3โ€ฒโ€ฒโ†M2M1p3โ€ฆpNโ€ฒโ€ฒโ†M2M1pN\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 p1โ€ฒโ€ฒโ€‹โ†M2โ€‹M1โ€‹p1โ€‹p2โ€ฒโ€ฒโ€‹โ†M2โ€‹M1โ€‹p2โ€‹p3โ€ฒโ€ฒโ€‹โ†M2โ€‹M1โ€‹p3โ€‹โ€ฆpNโ€ฒโ€ฒโ€‹โ†M2โ€‹M1โ€‹pNโ€‹

์ตœ๊ทผ ์ˆ˜์ •: 26. 6. 12. ์˜คํ›„ 3:28
Contributors: kmbzn, Claude Sonnet 4.6

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2026 kmbzn ยท MIT License