본문 바로가기

공부/컴퓨터그래픽스 이론

기하변환

반응형
기하변환

기하변환: 물체의 위치나 방향, 크기 등을 바꾸는 기하학적 변환

기본 2차원 변환

1. 2차원 이동변환

점의 2차원 이동변환

변화량 t일 때

  • P' = P + T
  • x' = x + t_x
  • y' = y + t_y

물체의 이동변환

  • 삼각형이 이동시, 삼각형을 구성하는 모든 꼭지점이 변화량 T만큼 이동해야함

2. 2차원 크기변환

원점을 기준으로 한 2차원 크기변환

변화량 s일 때

  • P' = SP
  • x' = s_x * x + 0y
  • y' = 0x + s_Y * y

임의 고정점을 기준으로 한 크기변환

임의 고정점 f를 원점인것처럼 계산

3. 2차원 회전변환

2차원 평면에서의 각도와 좌표의 관계

  • x = r cos a
  • y = r sin a

2차원 회전행렬

동차좌표계와 기본 2차원 변환 행렬

1. 동차좌표와 기하변환

동차좌표

  • n차원 투영공간을 n+1개의 좌표로 나타내는 좌표계
  • 0이 아닌 모든 h에 대해 (hx, hy, h)는 데카르트 좌표계상에서 하나의 좌표 (x,y)를 나타냄

동차좌표계에서 기본 기하변환의 행렬 표현

  • 기본 기하변환을 변환행렬과 좌표 벡터의 곱으로 표현할 수 있음
  • 2차원 변환행렬은 3x3 행렬로 표현됨

2. 동차좌표 변환 행렬

  • 이동 변환 행렬
  • 크기 변환 행렬
  • 회전 변환 행렬

기본 3차원 변환

기본적인 개념은 2차원과 같음

  • 이동이나 스케일은 거의 비슷
  • 회전행렬의 경우 어떤 축을 기준으로 회전하느냐에 따라 행렬이 달라짐

복합 기하변환

  • 한 물체에 이동, 크기, 회전 변환을 연속적으로 수행하는 경우
  • 연속적으로 수행할 변환 행렬들을 미리 곱하여 하나의 행렬로 만든 후 수행해도 결과는 같음

기타 기하변환

1. 대칭변환

x축, y축, 원점을 기준으로 대칭

  • x축 대칭변환: y만 부호변환
  • y축 대칭변환: x만 부호변환
  • 원점 대칭변환: x,y 부호변환

2. 밀림변환

  • 각각의 점들이 동일한 방향으로 평행 이동하는 선형변환
  • 이동량은 점의 이동선을 포함하는 직선과 원점 사이의 거리에 비례

3. 아핀변환

아핀변환행렬

  • 이런 형태의 배열을 아핀변환이라 부름
  • 동일한 직선상에 놓은 세 점은 변환 후에도 하나의 직선상에 놓인다.
  • 하나의 직선상에 놓인 서로 다른 세 점 사이의 거리의 비는 변환 후에도 동일하다.
  • 평행한 선들은 변환 후에도 평행하다.

강체변환

  • 아핀변환 중 이동과 회전만으로 구성된 기하변환

좌표계 사이의 변환

  1. T행렬을 더해 원점을 맞춰줌
  2. R행렬을 곱해 좌표축을 맞춰줌

OpenGL의 기하변환

항등행렬 만들기

  • 항등 행렬 만들기: 다 0으로 채우고 대각선 행렬만 1
  • 이동 행렬 만들기: 항등 행렬에 3열만 채우기
  • 회전 행렬 만들기: 항등 행렬에 sin/cos 채우기

셰이더

  • uniform변수: 도형이 처리되는 동안 동일한 값을 사용할 변수
  • 행렬이 행 우선으로 저장되었을 경우 transpose=true
반응형