[Grphics] 3/15

좌표계..!

공간상에서의 위치와 방향이죠.
크기나 형태도 바뀔 수 있어요.

Linear Transformations

linear 하다는 건 무슨 뜻이에요?
((테크니컬 정의))
아주 쉽게 말하자면, 1차식으로 나타낼 수 있다는 말이에요.
element들이 vector component들이고, 이것들에 대하여 1차식으로 표현할 수 있다는 거죠.
1차식으로 쓰면 어떻게 쓸 수 있어요?
matrix의 곱으로 쓸 수 있어요.

linear combination에 대하여 invariant 하다는 것은.
각각을 transform 하고 난 뒤 linear comb로 나타내는 것과,
linear comb.를 transform 한 것 간의 값이 같다는 것입니다.
결국은 1차식이라는 겁니다.

vector를 쓰는 방법은 column vector conventrion, row vector convention이 있죠.
교과서는 column, 코딩은 row를 쓰는 경우가 대부분입니다.
어떤 컨벤션을 쓰는지 잘 확인해보세요.

example

  • 2D rotation
  • 2D scaling
  • 2D shear
    • along X-axis
    • along Y-axis

Properties

3D는 3*3 matrix로 나타낼 수 있다.
canonical composition이 존재하지 않는다.
여러가지 composition으로 표현할 수 있다는 뜻이다.

Rotation

x-axis shear → y-axis shear
두개의 간단한 연산으로 쪼개서 하기 때문에 금방 할 수 있다.
shear는 결국 옆으로 밀기만 하는거니까요.

Changing basis

(x, y) → (x’, y’)
좌표계를 변환한다.
새로운 좌표계의 basis로 기존 basis를 표현한 뒤, 행렬곱으로 변환!

Affine Transformations

일하느라 못 들었다.
휴..

교과서에는 homogineous 연산이 나와있지만, 현업에서는 안 써요.
매트릭스의 크기가 너무 커서 공간만 차지해요.
교과서에서는 컴팩트하게 쓰여지지만, 실제 구현에서는 오히려 계산상 이득이 없어요.

Composing Transformation

column major, row major에 따라서 결과가 다르다.

헷갈리니까, column major로만 생각하자.
회전/이동의 순서가 바뀌면 완전히 다른 결과가 나온다.
이때, 왼쪽에서 오른쪽으로 읽을 때는 fixed coordinates로 생각.
오른쪽에서 왼쪽으로 읽을 때는 local coordinates로 생각하면 된다.

Property

  • 선의 길이비는 보존이 됨.
  • 평행 여부도 보존?
  • 각도는 보존 안 됨

Chainging frame

A 좌표계에서 B 좌표계로 바꾸는 것은,
A에 있는 것을 B 좌표계로 보내는 것이나,
B 좌표계를 A 좌표계로 변경하는 것과 같다.

직교좌표계간에는 변환을 위한 역행렬을 구하지 않고,
transpose를 구함으로써 할 수 있다.