상세 컨텐츠

본문 제목

행렬의 활용 및 R/T/S 변환

Study/Graphics

by J2on 2024. 2. 4. 18:25

본문

행렬

Table 형태 수의 배열

 

대각 행렬

대각선에만 요소가 있는 것.

 

단위 행렬

대각 행렬인데 요소가 다 1인 것.

 

전치행렬 ( Transpose )

그냥 간단하게 column과 row를 바꾸는 것.

 

전치행렬의 전치행렬은 원 행렬과 같다.

 

역행렬 ( Inverse )

어떤 행렬에 곱해졌을 때 단위 행렬로 만드는 행렬

 

A의 역행렬은 A^{-1}로 표현한다.

 

Scailing

대각행렬로 구성해서 곱해준다.

이 때 순서가 중요한데, 순서를 바꾸고 싶다면 원 행렬이 아닌 역행렬을 곱해주어야 한다.

이렇게 순서가 굉장히 중요하다는 것.

 

Rotation

얘도 순서가 바뀌면 역행렬로 변경해야 한다.

 

 

Translation

이동하는 경우.

사실 그냥 (a,b)를 이동하고 싶을 때 (a + 2, b+3)으로 구성해도 된다.

 

하지만 행렬을 이용하는 이유는?

 

⇒ Rotation과 Scailing에 통합해서 하나의 행렬로 구성할 수 있기 때문.

Rotation과 Scailing은 선형 변환(Linear Transfrom)으로 L, Translation은 t로 표현한다.

 

 

합치면 [L|t]

 

이를 Affine Transform, 아핀 변환이라고 부른다.

 

여기서도 L이 먼저 적용되어야 한다.

 

  1. 회전 후 이동하는 경우

   

   2. 이동 후 회전하는 경우

 

 

둘의 결과가 다르죠?

 

각 Object는 Object Space라는 좌표계 공간을 가지고 있는데, Object가 Translation하면 회전축에서 멀어지게 됩니다.

 

그리고 Rotation은 회전축을 기준으로 Object Space 전체를 돌려버리기 때문에

 

이러한 결과가 나오게 됩니다.

 

 

이런 느낌입니다.

 

회전은 원점을 기준으로 이루어지고, translation으로 원점에서 멀어졌으니 translation 역시 rotation의 영향을 받는다는 뜻.

관련글 더보기

댓글 영역