• 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

4 - Affine Space / Frame / Matrix

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

Outline

  • Affine Space - Point vs. Vector
  • Coordinate System & Reference Frame
  • Affine Transformation Matrix
  • Interpretation of Composite Transformations

Affine Space - Point vs. Vector

  • ๊ฐœ๋…์ ์œผ๋กœ point์™€ vector๋Š” ๋งค์šฐ ๋‹ค๋ฆ„
  • ์ด ์ฐจ์ด๋Š” homogeneous coordinates๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ด ๊ฐ•์˜์—์„œ๋Š” affine space, point์™€ vector์˜ ์ฐจ์ด์ , ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด homogeneous coordinates์™€ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š”์ง€๋ฅผ ํ•™์Šตํ•จ
  • ์ด ๊ฐœ๋…์€ coordinate invariant ๋˜๋Š” coordinate-free geometric programming์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ

(์ถœ์ฒ˜: http://mrl.snu.ac.kr/courses/CourseGraphics/index_2017spring.html)

Points

  • Point p\mathbf{p}p, Point q\mathbf{q}q
  • ์ด ๋‘ ์ ์„ ๋”ํ•œ "sum"์€ ๋ฌด์—‡์ธ๊ฐ€?

If you assume coordinates, โ€ฆ

  • p=(x1,ย y1)\mathbf{p} = (x_1,~y_1)p=(x1โ€‹,ย y1โ€‹)
  • q=(x2,ย y2)\mathbf{q} = (x_2,~y_2)q=(x2โ€‹,ย y2โ€‹)
  • ํ•ฉ: (x1+x2,ย y1+y2)(x_1+x_2,~y_1+y_2)(x1โ€‹+x2โ€‹,ย y1โ€‹+y2โ€‹)
    • ์ด๊ฒŒ ๋งž๋Š”๊ฐ€?
    • ๊ธฐํ•˜ํ•™์ ์œผ๋กœ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”๊ฐ€?
  • ๋™์ผํ•œ ์ขŒํ‘œ ํ‘œํ˜„์—์„œ,
  • p=(x1,ย y1)\mathbf{p} = (x_1,~y_1)p=(x1โ€‹,ย y1โ€‹)
  • q=(x2,ย y2)\mathbf{q} = (x_2,~y_2)q=(x2โ€‹,ย y2โ€‹)
  • (x1+x2,ย y1+y2)(x_1+x_2,~y_1+y_2)(x1โ€‹+x2โ€‹,ย y1โ€‹+y2โ€‹)๋Š” ๋‹จ์ˆœํ•œ ํ•ฉ์ด ์•„๋‹Œ,
    ์›์ ์—์„œ p\mathbf{p}p์™€ q\mathbf{q}q๊นŒ์ง€ ๊ฐ€๋Š” vector์˜ ํ•ฉ์œผ๋กœ ๊ฐ„์ฃผํ•ด์•ผ ํ•จ
    โ†’ Vector sum

If you select a different origin, โ€ฆ

  • p=(x1,ย y1)\mathbf{p} = (x_1,~y_1)p=(x1โ€‹,ย y1โ€‹)
  • q=(x2,ย y2)\mathbf{q} = (x_2,~y_2)q=(x2โ€‹,ย y2โ€‹)
  • (x1+x2,ย y1+y2)(x_1+x_2,~y_1+y_2)(x1โ€‹+x2โ€‹,ย y1โ€‹+y2โ€‹)์˜ ์˜๋ฏธ๋Š”
    ์ขŒํ‘œ๊ณ„(์›์ )๊ฐ€ ์–ด๋””์ธ์ง€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง
  • ์ฆ‰, ๋‹ค๋ฅธ coordinate frame์„ ์„ ํƒํ•˜๋ฉด ๊ฒฐ๊ณผ๋„ ๋‹ฌ๋ผ์ง

Points and Vectors

  • point๋Š” ์ขŒํ‘œ๊ฐ’์œผ๋กœ ์ •์˜๋œ ์œ„์น˜
  • vector๋Š” ๋‘ ์  ์‚ฌ์ด์˜ ์ฐจ์ด๋กœ ์ •์˜๋จ
  • ์›์ ์ด ์ •์˜๋˜์—ˆ๋‹ค๋ฉด, point๋Š” ์›์ ์—์„œ ํ•ด๋‹น point๊นŒ์ง€์˜ vector๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ
  • ํ•˜์ง€๋งŒ coordinate-free ๊ด€์ ์—์„œ๋Š” point๋Š” vector๊ฐ€ ์•„๋‹˜

Points & Vectors are Different!

  • ์ˆ˜ํ•™์ (๋˜๋Š” ๋ฌผ๋ฆฌ์ )์œผ๋กœ,
    • Point๋Š” ๊ณต๊ฐ„์ƒ์˜ ์œ„์น˜
    • Vector๋Š” ๊ณต๊ฐ„์ƒ์˜ ๋ณ€์œ„
  • ์‹œ๊ฐ„์— ๋น„์œ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Œ:
    • datetime์€ ์‹œ๊ฐ„์˜ ์œ„์น˜
    • duration์€ ์‹œ๊ฐ„์˜ ๋ณ€์œ„

Vector and Affine Spaces

  • Vector space
    • ๋ฒกํ„ฐ์™€ ๊ทธ ์—ฐ์‚ฐ ํฌํ•จ
    • ์ (points)์€ ํฌํ•จํ•˜์ง€ ์•Š์Œ
  • Affine space
    • vector space์˜ ์ƒ์œ„ ๊ฐœ๋…
    • ๋ฒกํ„ฐ, ์ , ๊ทธ์— ๊ด€๋ จ๋œ ์—ฐ์‚ฐ ๋ชจ๋‘ ํฌํ•จ

Vector spaces

  • A vector space๋Š” ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋จ:
    • ๋ฒกํ„ฐ ์ง‘ํ•ฉ๊ณผ
    • ๋‘ ๊ฐ€์ง€ ์—ฐ์‚ฐ:
      • ๋ฒกํ„ฐ ๊ฐ„ ๋ง์…ˆ
      • ์Šค์นผ๋ผ ๊ณฑ

Linear Combination

  • ๋ฒกํ„ฐ๋“ค์˜ ์„ ํ˜• ๊ฒฐํ•ฉ(linear combination) ๋˜ํ•œ ๋ฒกํ„ฐ์ž„

u0,u1,โ€ฆ,unโˆˆVโ‡’c0u0+c1u1+โ‹ฏ+cnunโˆˆV\mathbf{u}_0, \mathbf{u}_1, \dots, \mathbf{u}_n \in V \\ \Rightarrow c_0 \mathbf{u}_0 + c_1 \mathbf{u}_1 + \dots + c_n \mathbf{u}_n \in V u0โ€‹,u1โ€‹,โ€ฆ,unโ€‹โˆˆVโ‡’c0โ€‹u0โ€‹+c1โ€‹u1โ€‹+โ‹ฏ+cnโ€‹unโ€‹โˆˆV

Affine Spaces

  • An affine space๋Š” ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋จ:
    • ์ ๋“ค์˜ ์ง‘ํ•ฉ, ๊ด€๋ จ๋œ ๋ฒกํ„ฐ ๊ณต๊ฐ„
    • ๋‘ ๊ฐ€์ง€ ์—ฐ์‚ฐ:
      • ๋‘ ์ ์˜ ์ฐจ์ด
      • ์  + ๋ฒกํ„ฐ

Coordinate-Free Geometric Operations

  • ๋ง์…ˆ (Addition)
  • ๋บ„์…ˆ (Subtraction)
  • ์Šค์นผ๋ผ ๊ณฑ (Scalar multiplication)

Addition

  • u,v,w\mathbf{u}, \mathbf{v}, \mathbf{w}u,v,w: vectors
  • p,q\mathbf{p}, \mathbf{q}p,q: points
    ๋ผ๊ณ  ํ•  ๋•Œ,
  • u+vโ†’\mathbf{u} + \mathbf{v} \rightarrowu+vโ†’ vector
  • p+wโ†’\mathbf{p} + \mathbf{w} \rightarrowp+wโ†’ point

Subtraction

  • uโˆ’vโ†’\mathbf{u} - \mathbf{v} \rightarrowuโˆ’vโ†’ vector
  • pโˆ’qโ†’\mathbf{p} - \mathbf{q} \rightarrowpโˆ’qโ†’ vector
  • pโˆ’wโ†’\mathbf{p} - \mathbf{w} \rightarrowpโˆ’wโ†’ point

Scalar Multiplication

  • ์Šค์นผ๋ผ โ‹… ๋ฒกํ„ฐ = ๋ฒกํ„ฐ
    • cโ‹…vโ†’c \cdot \mathbf{v} \rightarrowcโ‹…vโ†’ vector
  • 1โ‹…1 \cdot1โ‹… point = point
  • 0โ‹…0 \cdot0โ‹… point = vector
  • cโ‹…c \cdotcโ‹… point = (undefined) ย ifย (cโ‰ 0,ย 1)~\text{if} ~(c \neq 0,~1)ย ifย (c๎€ =0,ย 1)

Affine Frame

  • A frame์€ ๋‹ค์Œ์œผ๋กœ ์ •์˜๋จ:
    • ๋ฒกํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ $ \{ \mathbf{v}_i~| ~ i = 1, \dots, N \}$
    • ๊ธฐ์ค€์  o\mathbf{o}o
  • ๋ฒกํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ {vi}\{\mathbf{v}_i\}{viโ€‹}๋Š” ํ•ด๋‹น vector space์˜ bases
  • o\mathbf{o}o๋Š” ํ•ด๋‹น frame์˜ origin
  • NNN์€ affine space์˜ dimension
  • ์ž„์˜์˜ ์  p\mathbf{p}p๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„๋จ:

p=o+c1v1+c2v2+โ‹ฏ+cnvn\mathbf{p} = \mathbf{o} + c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \dots + c_n \mathbf{v}_n p=o+c1โ€‹v1โ€‹+c2โ€‹v2โ€‹+โ‹ฏ+cnโ€‹vnโ€‹

  • ์ž„์˜์˜ ๋ฒกํ„ฐ v\mathbf{v}v๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„๋จ:

v=c1v1+c2v2+โ‹ฏ+cnvn\mathbf{v} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \dots + c_n \mathbf{v}_n v=c1โ€‹v1โ€‹+c2โ€‹v2โ€‹+โ‹ฏ+cnโ€‹vnโ€‹

Summary

  • Affine space์—์„œ:

p+p=(undefined)pโˆ’p=vectorpยฑv=pointvยฑv=vectorcโ‹…v=vector1โ‹…p=point0โ‹…p=vectorcโ‹…p=(undefined)(cโ‰ 0,1)\begin{aligned} \mathbf{p} + \mathbf{p} & = \text{(undefined)} \\ \mathbf{p} - \mathbf{p} & = \text{vector} \\ \mathbf{p} \pm \mathbf{v} & = \text{point} \\ \mathbf{v} \pm \mathbf{v} & = \text{vector} \\ c \cdot \mathbf{v} & = \text{vector} \\ 1 \cdot \mathbf{p} & = \text{point} \\ 0 \cdot \mathbf{p} & = \text{vector} \\ c \cdot \mathbf{p} & = \text{(undefined)} \quad (c \neq 0, 1) \end{aligned} p+ppโˆ’ppยฑvvยฑvcโ‹…v1โ‹…p0โ‹…pcโ‹…pโ€‹=(undefined)=vector=point=vector=vector=point=vector=(undefined)(c๎€ =0,1)โ€‹

Points & Vectors in Homogeneous Coordinates

  • Homogeneous coordinates์—์„œ๋Š”,
    • 3D point: $ (x, y, z, \mathbf{1}) $
    • 3D vector: $ (x, y, z, \mathbf{0}) $

โ†’\rightarrowโ†’ ์ด ํ‘œํ˜„์€ coordinate-free geometric programming์˜ ๊ฐœ๋…๊ณผ ์™„์ „ํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋ธ์„ ์ œ๊ณตํ•จ

์˜ˆ์‹œ:

(x1,y1,z1,1)+(x2,y2,z2,1)=(x1+x2,y1+y2,z1+z2,2)โ†’pointย (undefined)(x_1, y_1, z_1, 1) + (x_2, y_2, z_2, 1) \\ = (x_1 + x_2, y_1 + y_2, z_1 + z_2, 2) \rightarrow \text{point (undefined)} (x1โ€‹,y1โ€‹,z1โ€‹,1)+(x2โ€‹,y2โ€‹,z2โ€‹,1)=(x1โ€‹+x2โ€‹,y1โ€‹+y2โ€‹,z1โ€‹+z2โ€‹,2)โ†’pointย (undefined)

(x1,y1,z1,1)โˆ’(x2,y2,z2,1)=(x1โˆ’x2,y1โˆ’y2,z1โˆ’z2,0)โ†’vector(x_1, y_1, z_1, 1) - (x_2, y_2, z_2, 1) \\ = (x_1 - x_2, y_1 - y_2, z_1 - z_2, 0) \rightarrow \text{vector} (x1โ€‹,y1โ€‹,z1โ€‹,1)โˆ’(x2โ€‹,y2โ€‹,z2โ€‹,1)=(x1โ€‹โˆ’x2โ€‹,y1โ€‹โˆ’y2โ€‹,z1โ€‹โˆ’z2โ€‹,0)โ†’vector

(x1,y1,z1,1)+(x2,y2,z2,0)=(x1+x2,y1+y2,z1+z2,1)โ†’point(x_1, y_1, z_1, 1) + (x_2, y_2, z_2, 0) \\ = (x_1 + x_2, y_1 + y_2, z_1 + z_2, 1) \rightarrow \text{point} (x1โ€‹,y1โ€‹,z1โ€‹,1)+(x2โ€‹,y2โ€‹,z2โ€‹,0)=(x1โ€‹+x2โ€‹,y1โ€‹+y2โ€‹,z1โ€‹+z2โ€‹,1)โ†’point

(x1,y1,z1,0)+(x2,y2,z2,0)=(x1+x2,y1+y2,z1+z2,0)โ†’vector(x_1, y_1, z_1, 0) + (x_2, y_2, z_2, 0) \\ = (x_1 + x_2, y_1 + y_2, z_1 + z_2, 0) \rightarrow \text{vector} (x1โ€‹,y1โ€‹,z1โ€‹,0)+(x2โ€‹,y2โ€‹,z2โ€‹,0)=(x1โ€‹+x2โ€‹,y1โ€‹+y2โ€‹,z1โ€‹+z2โ€‹,0)โ†’vector

cโ‹…(x,y,z,0)=(cx,cy,cz,0)โ†’vectorc \cdot (x, y, z, 0) \\ = (cx, cy, cz, 0) \rightarrow \text{vector} cโ‹…(x,y,z,0)=(cx,cy,cz,0)โ†’vector

cโ‹…(x,y,z,1)=(cx,cy,cz,c)โ†’{pointifย c=1vectorifย c=0undefinedifย cโ‰ 0,1c \cdot (x, y, z, 1) \\ = (cx, cy, cz, c) \rightarrow \begin{cases} \text{point} & \text{if } c = 1 \\ \text{vector} & \text{if } c = 0 \\ \text{undefined} & \text{if } c \ne 0, 1 \end{cases} cโ‹…(x,y,z,1)=(cx,cy,cz,c)โ†’โŽฉโŽจโŽงโ€‹pointvectorundefinedโ€‹ifย c=1ifย c=0ifย c๎€ =0,1โ€‹

  • Affine transformation matrix์™€ point, vector์˜ ๊ณฑ:

[Mt0T1][p1]=[Mp+t1]โ†’point\begin{bmatrix} \mathbf{M} & \mathbf{t} \\ \mathbf{0}^\mathrm{T} & 1 \end{bmatrix} \begin{bmatrix} \mathbf{p} \\ 1 \end{bmatrix} = \begin{bmatrix} \mathbf{M} \mathbf{p} + \mathbf{t} \\ 1 \end{bmatrix} \rightarrow \text{point} [M0Tโ€‹t1โ€‹][p1โ€‹]=[Mp+t1โ€‹]โ†’point

[Mt0T1][v0]=[Mv0]โ†’vector\begin{bmatrix} \mathbf{M} & \mathbf{t} \\ \mathbf{0}^\mathrm{T} & 1 \end{bmatrix} \begin{bmatrix} \mathbf{v} \\ 0 \end{bmatrix} = \begin{bmatrix} \mathbf{M} \mathbf{v} \\ 0 \end{bmatrix} \rightarrow \text{vector} [M0Tโ€‹t1โ€‹][v0โ€‹]=[Mv0โ€‹]โ†’vector

โ†’ translation์€ vector์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Œ!

Quiz 1

Coordinate System & Reference Frame

  • Coordinate system

    • ์ ์˜ ์œ„์น˜๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ ์ˆซ์ž ๋˜๋Š” ์ขŒํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฒด๊ณ„
  • Reference frame

    • ์ถ”์ƒ์ ์ธ ์ขŒํ‘œ๊ณ„ + ์‹ค์ œ ๊ธฐ์ค€์ 
    • ์ขŒํ‘œ๊ณ„๋ฅผ ๊ณ ์ •์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ
  • ์ด ๋‘ ์šฉ์–ด๋Š” ์ข…์ข… ํ˜ผ์šฉ๋˜์ง€๋งŒ, ์˜๋ฏธ์—๋Š” ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Œ

World / Body Frame (or Coordinate System)

  • World frame (or coordinate system)

    • ์„ธ๊ณ„์— ๊ณ ์ •๋œ ์ขŒํ‘œ๊ณ„
    • aka. global frame, fixed frame
  • Body frame (or coordinate system)

    • ๋ฌผ์ฒด์— ๊ณ ์ •๋œ ์ขŒํ‘œ๊ณ„
    • aka. local frame

Meanings of Affine Transformation Matrix

  • ํ•˜๋‚˜์˜ affine transformation matrix๋Š”
    ์—ฌ๋Ÿฌ ๊ด€์ ์—์„œ ํ•ด์„ ๊ฐ€๋Šฅํ•จ

1) Affine Transformation Matrix Transforms a Geometry w.r.t. World Frame

  • ํ–‰๋ ฌ M\mathbf{M}M์€ ๊ธฐํ•˜ ๊ฐ์ฒด์˜ ๊ฐ vertex ์œ„์น˜๋ฅผ world frame ๊ธฐ์ค€์—์„œ ์ƒˆ๋กœ์šด ์œ„์น˜๋กœ ๋ณ€ํ™˜

  • ๋ณ€ํ™˜ ํฌํ•จ: translate, rotate, scale ๋“ฑ

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

  • M\mathbf{M}M์„ ๊ณฑํ•˜๋ฉด geometry๊ฐ€ world frame์—์„œ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ์ด๋™๋œ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋จ

Review: Affine Frame

  • Affine frame (3D ๊ณต๊ฐ„ ๊ธฐ์ค€)์€ ๋‹ค์Œ์œผ๋กœ ์ •์˜๋จ:
    • x,ย y,ย zx,~y,~zx,ย y,ย z์ถ•์„ ๋‚˜ํƒ€๋‚ด๋Š” 3๊ฐœ์˜ ๋ฒกํ„ฐ
    • 1๊ฐœ์˜ ์›์  ์œ„์น˜(์ขŒํ‘œ)

World Frame

  • World frame์€ ๋ณดํ†ต ๋‹ค์Œ์œผ๋กœ ํ‘œํ˜„๋จ:
    • ํ‘œ์ค€ ์ถ• ๋ฒกํ„ฐ

      e^x=[100]ย e^y=[010]ย e^z=[001]\hat{\mathbf{e}}_x = \begin{bmatrix}1 \\ 0 \\ 0\end{bmatrix}~ \hat{\mathbf{e}}_y = \begin{bmatrix}0 \\ 1 \\ 0\end{bmatrix}~ \hat{\mathbf{e}}_z = \begin{bmatrix}0 \\ 0 \\ 1\end{bmatrix} e^xโ€‹=โ€‹100โ€‹โ€‹ย e^yโ€‹=โ€‹010โ€‹โ€‹ย e^zโ€‹=โ€‹001โ€‹โ€‹

    • ์›์ 

      0=[000]\mathbf{0}= \begin{bmatrix}0 \\ 0 \\ 0\end{bmatrix} 0=โ€‹000โ€‹โ€‹

Letโ€™s Transform a "World Frame"

  • M\mathbf{M}M์„ world frame์— ๊ณฑํ•˜๋ฉด, ๊ฐ ์ถ• ๋ฒกํ„ฐ ๋ฐ ์›์ ์ด ๋ณ€ํ™˜๋จ:

x-axis:M[1000] \text{x-axis:} \quad \mathbf{M} \begin{bmatrix}1 \\ 0 \\ 0 \\ 0\end{bmatrix} x-axis:Mโ€‹1000โ€‹โ€‹ : ์ฒซ ๋ฒˆ์งธ column

y-axis:M[0100] \text{y-axis:} \quad \mathbf{M} \begin{bmatrix}0 \\ 1 \\ 0 \\ 0\end{bmatrix} y-axis:Mโ€‹0100โ€‹โ€‹ : ๋‘ ๋ฒˆ์งธ column

z-axis:M[0010] \text{z-axis:} \quad \mathbf{M} \begin{bmatrix}0 \\ 0 \\ 1 \\ 0\end{bmatrix} z-axis:Mโ€‹0010โ€‹โ€‹ : ์„ธ ๋ฒˆ์งธ column

origin:M[0001] \text{origin:} \quad \mathbf{M} \begin{bmatrix}0 \\ 0 \\ 0 \\ 1\end{bmatrix} origin:Mโ€‹0001โ€‹โ€‹ : ๋„ค ๋ฒˆ์งธ column

2) Affine Transformation Matrix Defines an Affine Frame w.r.t. World Frame

  • ํ–‰๋ ฌ M\mathbf{M}M์€ ๊ธฐ์ค€ ํ”„๋ ˆ์ž„ {0}\{0\}{0} ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜„๋œ body frame {1}\{1\}{1}์„ ์ •์˜
  • M\mathbf{M}M์˜ ๊ฐ column์€ ๋‹ค์Œ์„ ๋‚˜ํƒ€๋ƒ„:
    • ์•ž์˜ 3๊ฐœ column: ์ถ• ๋ฒกํ„ฐ
    • ๋งˆ์ง€๋ง‰ column: ์›์  ์œ„์น˜

โ†’ M\mathbf{M}M์€ body frame {1}\{1\}{1}์„ world frame {0}\{0\}{0} ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ

Examples

  • ๊ฐ™์€ ๋ฌผ์ฒด์˜ body frame์„ ๋‘ ๋ฐฉ์‹์œผ๋กœ ์ •์˜:
    1. world frame๊ณผ ๋™์ผํ•œ ์œ„์น˜์ผ ๋•Œ
    2. ์ด๋™๋œ ์œ„์น˜์—์„œ ์ •์˜๋  ๋•Œ

โ†’ ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ M\mathbf{M}M์€ body frame์„ world ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜„ํ•จ

3) Affine Transformation Matrix Transforms a Point in Body Frame to (the same) Point (but) represented in World Frame

  • $ \mathbf{p}^{\{1\}} = \begin{bmatrix}1 \ 1 \ 0\end{bmatrix} $
    (body frame 1\\{1\\}1 ๊ธฐ์ค€์˜ ์ )

p0=Mโ‹…p1\mathbf{p}^{\\{0\\}} = \mathbf{M} \cdot \mathbf{p}^{\\{1\\}} p0=Mโ‹…p1

  • ๊ฐ™์€ ์ ์„ world frame 0\\{0\\}0 ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ
    Why?
  • ๋™์ผํ•œ ๋ฌผ์ฒด๋ฅผ body frame์—์„œ ๋ณด๋‹ค๊ฐ€ M\mathbf{M}M์„ ํ†ตํ•ด world frame ๊ธฐ์ค€ ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ:

p0=Mโ‹…p1\mathbf{p}^{\\{0\\}} = \mathbf{M} \cdot \mathbf{p}^{\\{1\\}} p0=Mโ‹…p1

  • ๋‹จ์ˆœํžˆ geometry๋ฅผ ๋ณ€ํ™˜ํ•œ ์ด์•ผ๊ธฐ์ž„

Directions of the "arrow"

  • ์ฒซ ๋ฒˆ์งธ ์˜๋ฏธ
    • geometry ์ž์ฒด๋ฅผ transform (frame์€ ๊ทธ๋Œ€๋กœ)
    • M\mathbf{M}M์€ ๋ณ€ํ™˜์˜ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋ƒ„: 0โ†’1{\\{0\\}}\rightarrow{\\{1\\}}0โ†’1
      โ†’ p0\mathbf{p}^{\\{0\\}}p0๊ฐ€ ๋ณ€ํ™˜๋˜์–ด p1\mathbf{p}^{\\{1\\}}p1์ด ๋จ.
  • ๋‘ ๋ฒˆ์งธ ์˜๋ฏธ
    • frame ์ž์ฒด์˜ ๋ณ€ํ™˜
    • 1{\\{1\\}}1 ํ”„๋ ˆ์ž„์ด 0{\\{0\\}}0 ๊ธฐ์ค€์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • ์„ธ ๋ฒˆ์งธ ์˜๋ฏธ
    • p\mathbf{p}p๋ผ๋Š” ์ ์ด ํ‘œํ˜„๋˜๋Š” ํ”„๋ ˆ์ž„ ์ž์ฒด๋ฅผ ๋ฐ”๊พธ๋Š” ๊ณผ์ • โ†’ "ํ‘œํ˜„์˜ ๊ธฐ์ค€"์ด ๋ฐ”๋€œ: 0\\{0\\}0์—์„œ ๋ณธ p\mathbf{p}p๋ฅผ 1\\{1\\}1์—์„œ ๋ณธ p\mathbf{p}p๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ

Quiz 2

All these concepts work even if the starting frame is not world frame!

  • ์‹œ์ž‘ ํ”„๋ ˆ์ž„์ด world frame์ด ์•„๋‹ˆ์–ด๋„, ์ง€๊ธˆ๊นŒ์ง€์˜ ๋ชจ๋“  ๊ฐœ๋…์€ ๊ทธ๋Œ€๋กœ ์ ์šฉ ๊ฐ€๋Šฅ

{0} to {1}

  • M1\mathbf{M}_1M1โ€‹์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰:
    1. ํ”„๋ ˆ์ž„ {0}\{0\}{0} ๊ธฐ์ค€์—์„œ geometry๋ฅผ ๋ณ€ํ™˜
    2. ํ”„๋ ˆ์ž„ {0}\{0\}{0} ๊ธฐ์ค€์—์„œ ํ”„๋ ˆ์ž„ {1}\{1\}{1}์„ ์ •์˜
    3. ํ”„๋ ˆ์ž„ {1}\{1\}{1} ๊ธฐ์ค€์˜ ์ ์„ {0}\{0\}{0} ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜„

      p{0}=M1โ‹…p{1} \mathbf{p}^{\{0\}} = \mathbf{M}_1 \cdot \mathbf{p}^{\{1\}} p{0}=M1โ€‹โ‹…p{1}

{1} to {2}

  • M2\mathbf{M}_2M2โ€‹๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰:
    1. ํ”„๋ ˆ์ž„ {1}\{1\}{1} ๊ธฐ์ค€์—์„œ geometry๋ฅผ ๋ณ€ํ™˜
    2. ํ”„๋ ˆ์ž„ {1}\{1\}{1} ๊ธฐ์ค€์—์„œ ํ”„๋ ˆ์ž„ ๋ฅผ ์ •์˜
    3. ํ”„๋ ˆ์ž„ {2}\{2\}{2} ๊ธฐ์ค€์˜ ์ ์„ {1}\{1\}{1} ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜„

      p{1}=M2โ‹…p{2} \mathbf{p}^{\{1\}} = \mathbf{M}_2 \cdot \mathbf{p}^{\{2\}} p{1}=M2โ€‹โ‹…p{2}

{0} to {2}

  • M1M2\mathbf{M}_1 \mathbf{M}_2M1โ€‹M2โ€‹๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰:
    1. ํ”„๋ ˆ์ž„ {0}\{0\}{0} ๊ธฐ์ค€์—์„œ geometry๋ฅผ ๋ณ€ํ™˜
    2. ํ”„๋ ˆ์ž„ {0}\{0\}{0} ๊ธฐ์ค€์—์„œ ํ”„๋ ˆ์ž„ {2}\{2\}{2}๋ฅผ ์ •์˜
    3. ํ”„๋ ˆ์ž„ {2}\{2\}{2} ๊ธฐ์ค€์˜ ์ ์„ {0}\{0\}{0} ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜„

      p{0}=M1โ‹…M2โ‹…p{2} \mathbf{p}^{\{0\}} = \mathbf{M}_1 \cdot \mathbf{M}_2 \cdot \mathbf{p}^{\{2\}} p{0}=M1โ€‹โ‹…M2โ€‹โ‹…p{2}

Revisit: Order Matters!

  • T,R\mathbf{T}, \mathbf{R}T,R์ด affine transformation์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ–‰๋ ฌ์ผ ๋•Œ:

pโ€ฒ=Tโ‹…Rโ‹…p\mathbf{p}' = \mathbf{T} \cdot \mathbf{R} \cdot \mathbf{p} pโ€ฒ=Tโ‹…Rโ‹…p

๋จผ์ € R(p)\mathbf{R}(\mathbf{p})R(p)๋ฅผ ์ ์šฉํ•œ ๋’ค, ๊ทธ ๊ฒฐ๊ณผ์— T\mathbf{T}T๋ฅผ ์ ์šฉ

pโ€ฒ=Rโ‹…Tโ‹…p\mathbf{p}' = \mathbf{R} \cdot \mathbf{T} \cdot \mathbf{p} pโ€ฒ=Rโ‹…Tโ‹…p

๋จผ์ € T(p)\mathbf{T}(\mathbf{p})T(p)๋ฅผ ์ ์šฉํ•œ ๋’ค, ๊ทธ ๊ฒฐ๊ณผ์— R\mathbf{R}R์„ ์ ์šฉ

  • โ†’ ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ ์ˆœ์„œ๋Š” ๋งค์šฐ ์ค‘์š”ํ•จ!
    • ๊ฒฐํ•ฉ๋ฒ•์น™์€ ์„ฑ๋ฆฝํ•˜์ง€๋งŒ ๊ตํ™˜๋ฒ•์น™์€ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š์Œ: ABโ‰ BAAB \ne BAAB๎€ =BA

Composite(๋ณตํ•ฉ) Transformations์˜ Interpretation(ํ•ด์„)

  • ์˜ˆ์‹œ transformation:

    M=T(x,ย 3)โ‹…R(โˆ’90โˆ˜) \mathbf{M} = \mathbf{T}(x,~3) \cdot \mathbf{R}(-90^\circ) M=T(x,ย 3)โ‹…R(โˆ’90โˆ˜)

  • ์ง€๊ธˆ๊นŒ์ง€ ํ•ด์„ํ–ˆ๋˜ ๋ฐฉ์‹:
    • Rโ†’T\mathbf{R} \rightarrow \mathbf{T}Rโ†’T ์ˆœ์„œ๋กœ ์ ์šฉ
    • R\mathbf{R}R์€ world frame ๊ธฐ์ค€ ๋ณ€ํ™˜

pโ†’R(โˆ’90โˆ˜)R(p)โ†’T(x,3)pโ€ฒ=T(R(p))\mathbf{p} \xrightarrow{\mathbf{R}(-90^\circ)} \mathbf{R}(\mathbf{p}) \\\xrightarrow{\mathbf{T}(x, 3)} \mathbf{p}' = \mathbf{T}(\mathbf{R}(\mathbf{p})) pR(โˆ’90โˆ˜)โ€‹R(p)T(x,3)โ€‹pโ€ฒ=T(R(p))

  • ๋‹ค๋ฅธ ํ•ด์„ ๋ฐฉ์‹:
    • Rโ†’T\mathbf{R} \rightarrow \mathbf{T}Rโ†’T ์ˆœ์„œ๊ฐ€ ์•„๋‹Œ, Tโ†’R\mathbf{T} \rightarrow \mathbf{R}Tโ†’R ์ˆœ์„œ๋กœ ํ•ด์„
    • ์ฆ‰, body frame ๊ธฐ์ค€์—์„œ ํ•ด์„ํ•˜๋Š” ๋ฐฉ์‹

pโ†’T(p)โ†’R(T(p))=M(p)=pโ€ฒ\mathbf{p} \rightarrow \mathbf{T}(\mathbf{p}) \rightarrow \mathbf{R}(\mathbf{T}(\mathbf{p})) = \mathbf{M}(\mathbf{p}) = \mathbf{p}' pโ†’T(p)โ†’R(T(p))=M(p)=pโ€ฒ

โ†’ ๋™์ผํ•œ ํ–‰๋ ฌ์ด๋ผ๋„ ๊ธฐ์ค€ ํ”„๋ ˆ์ž„์— ๋”ฐ๋ผ ํ•ด์„์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ

Pre-(left) & Post-(right) Multiplication

Pre-multiplication:

pโ€ฒ=M1โ‹…M2โ‹…p(pre-multiplicationย byย M1)\mathbf{p}' = \mathbf{M}_1 \cdot \mathbf{M}_2 \cdot \mathbf{p} \\ (\text{pre-multiplication by } \mathbf{M}_1) pโ€ฒ=M1โ€‹โ‹…M2โ€‹โ‹…p(pre-multiplicationย byย M1โ€‹)

โ†’ Right-to-Left ์ˆœ์„œ

  1. M2\mathbf{M}_2M2โ€‹๋ฅผ world frame ๊ธฐ์ค€์œผ๋กœ ์ ์šฉํ•˜์—ฌ p\mathbf{p}p๋ฅผ ๋ณ€ํ™˜
  2. ๊ทธ ๊ฒฐ๊ณผ์— M1\mathbf{M}_1M1โ€‹์„ ๋‹ค์‹œ world frame ๊ธฐ์ค€์œผ๋กœ ์ ์šฉ

โ†’ ์ „์ฒด ๋ณ€ํ™˜์€ M1M2\mathbf{M}_1 \mathbf{M}_2M1โ€‹M2โ€‹

Post-multiplication:

pโ€ฒ=M1โ‹…M2โ‹…p(post-multiplicationย byย M1)\mathbf{p}' = \mathbf{M}_1 \cdot \mathbf{M}_2 \cdot \mathbf{p} \\ (\text{post-multiplication by } \mathbf{M}_1) pโ€ฒ=M1โ€‹โ‹…M2โ€‹โ‹…p(post-multiplicationย byย M1โ€‹)

โ†’ Left-to-Right ์ˆœ์„œ

  1. p\mathbf{p}p๋Š” body frame 1\\{1\\}1 ๊ธฐ์ค€์—์„œ ํ‘œํ˜„๋˜์–ด ์žˆ์Œ
  2. M1\mathbf{M}_1M1โ€‹์€ body frame 1\\{1\\}1์„ world frame ๊ธฐ์ค€์œผ๋กœ ์—…๋ฐ์ดํŠธํ•จ
  3. M2\mathbf{M}_2M2โ€‹๋Š” ์ด์–ด์„œ body frame 2\\{2\\}2๋กœ ์—…๋ฐ์ดํŠธํ•จ
  4. ๊ฒฐ๊ณผ์ ์œผ๋กœ p\mathbf{p}p๋Š” body frame 2\\{2\\}2 ๊ธฐ์ค€์—์„œ ํ‘œํ˜„๋จ

โ†’ ์ „์ฒด ๋ณ€ํ™˜์€ ์—ฌ์ „ํžˆ M1M2\mathbf{M}_1 \mathbf{M}_2M1โ€‹M2โ€‹

๋˜ ๋‹ค๋ฅธ ์œ ์šฉํ•œ ํ•ด์„๋ฒ•

  1. M1\mathbf{M}_1M1โ€‹: world frame ๊ธฐ์ค€์œผ๋กœ ์ ์šฉํ•˜์—ฌ body frame์„ M1\mathbf{M}_1M1โ€‹์œผ๋กœ ์—…๋ฐ์ดํŠธ
  2. M2\mathbf{M}_2M2โ€‹: ๋‹ค์‹œ world frame ๊ธฐ์ค€์œผ๋กœ ์ ์šฉํ•˜์—ฌ body frame์„ M1M2\mathbf{M}_1 \mathbf{M}_2M1โ€‹M2โ€‹๋กœ ์—…๋ฐ์ดํŠธ
  3. p\mathbf{p}p๋ฅผ ์ƒˆ๋กœ์šด body frame M1M2\mathbf{M}_1 \mathbf{M}_2M1โ€‹M2โ€‹ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜์‹œํ‚ด

[Demo] L-to-R & R-to-L Interpretation

observablehq.com/@esperanc/transformation-demo

  • ๋‹ค์–‘ํ•œ ์ˆœ์„œ๋กœ translation ๋ฐ ์„ ํ˜• ๋ณ€ํ™˜ ์ถ”๊ฐ€ ( '+' ๋ฒ„ํŠผ ์‚ฌ์šฉ)
  • ์Šฌ๋ผ์ด๋”๋ฅผ ๋“œ๋ž˜๊ทธํ•˜์—ฌ ํ–‰๋ ฌ ๊ฐ’์˜ ๋ณ€ํ™” ๋ฐ ๋„ํ˜•์˜ ๋ณ€ํ™”๋ฅผ ๊ด€์ฐฐ
  • ํ•ฉ์„ฑ ๋ณ€ํ™˜์˜ ์˜๋ฏธ๋ฅผ L-to-R, R-to-L ์ˆœ์„œ๋กœ ํ•ด์„ํ•ด๋ณด์„ธ์š”
์ตœ๊ทผ ์ˆ˜์ •: 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