대학생활/수업

게임그래픽프로그래밍 6~7주차 - 행렬, 선형 변환, 아핀 공간

se.jeon 2023. 4. 17. 20:25
728x90
반응형

[ 6주차 ]

[ 행렬의 정의 ]

행렬 : 직사각형 모양으로 행과 열로 수 또는 기호 혹은 다항식을 표현한 것.

- 대문자 알파벳으로 표기하고, 대괄호 () 를 선호한다.

- 행 (row) : 행렬의 가로 방향.

- 열 (column) : 행렬의 세로 방향.

- 행렬의 성분(Element) : 행렬을 구성하고 있는 각 요소.

- 행벡터 (row vector or row matrix) : 하나의 행으로 구성된 행렬.

- 열벡터 (column vector or column matrix) : 하나의 열로 구성된 행렬.

- 행렬의 크기 : MxN

- 정사각/ 정방행렬 (square matrix) : M=N

 

[ 행렬의 연산 ]

- 행렬의 상동 (Matrix Equality) : 주어진 행렬 A, B의 크기와 모든 성분이 같음.

- 행렬의 덧셈 (Matrix Addition) : 주어진 행렬 A, B의 크기가 같음. 성분들을 더함.

- 행렬의 뺄셈 : 주어진 행렬 A, B의 크기가 같음. 성분들을 빼줌.

  덧셈은 교환, 결합, 분배(스칼라 곱셈, 행렬의 곱셈) 성립함.

  뺄셈은 교환 성립 안함, 결합, 분배는 성립함.

- 행렬의 스칼라배 : 주어진 행렬 A에 대해서 모든 성분에 스칼라 값 k의 곱셈.

- 행렬의 곱셈 : (Matrix Multiplication or Matrix Product) : 주어진 행렬 A, B에 대해서 행렬 A의 행과 행렬 B의 열 성분을 곱한 후 결과 값을 더해서 최종 결과값으로 구성.

  행렬 A가 MxP이고 행렬 B가 PxN일 경우 계산 결과는 MxN 행렬.

  곱셈 결과 행렬의 성분은 앞 행렬 A의 해당 행과 뒤의 행렬 B에 해당. 열을 벡터로 생각하면 벡터의 내적값과 동일함.

- 행렬 곱셈이 성립하려면 A행렬의 열의 개수의 B행렬의 행의 개수가 동일해야 한다.

- 행렬 곱셈은 교환법칙이 성립하지 않는다.

- 행렬 곱셈은 결합법칙이 성립한다.

- 행렬 곱셈은 분배법칙이 성립한다.

 

[ 행렬의 종류 ]

- 정방행렬 (Square Matrix) : 행렬의 행과 열의 개수가 같은 행렬.

- 주대각선 (Main Digonal) 성분 : 모든 행렬의 대각선 성분들.

- 전치행렬 (Transpose Matrix) : 원래 행렬의 행과 열을 서로 바꾼 행렬.

  전치행렬은 하나만 존재한다. 전치행렬의 스칼라배는 행렬의 스칼라배의 전치행렬이다.

- 단위행렬 (Identity Matrix) : 행렬의 주대각선 성분들은 1이고 나머지는 0인 정방행렬.

  행렬의 곱셈에 대해서 항등원, 단위행렬의 전치행렬은 단위행렬.

- 대각행렬 (Diagonal Matrix) : 행렬의 주대각선 성분들은 제외하고 나머지는 0인 정방행렬.

- 영행렬 (Zero Matrix or null Matrix) : 행렬의 모든 성분들이 0인 행렬.

  영행렬의 전치행렬은 영행렬. 행렬 A의 덧셈에 대해서 항등원. 영행렬을 곱하면 항상 영행렬.

- 역행렬 (Inverse Matrix)

 

[ 역행렬 ]

- 행렬의 곱셈에 대해서 항등원은 단위행렬.

- 행렬의 곱셈에 대해서 역원은 역행렬.

- 단위행렬의 역행렬은 단위행렬.

- 영행렬의 역행렬은 존재하지 않음.

역행렬이 존재하는 행렬

- 가역행렬 (Invertible matrix) 혹은 정칙행렬(Regular Matrix)

 

[ 역행렬의 성질 ]

- 역행렬은 정방행렬 (Square Matrix)에서만 존재한다.

- 가역행렬 A에 대해서 역행렬은 하나만 존재한다.

- 행렬 A의 역행렬의 전치행렬과 A의 전치행렬의 역행렬은 동일하다.

- 행렬 A, B의 곱셈의 역행렬은 B의 역행렬, A의 역행렬의 곱셈과 동일하다.

 

[ 역행렬과 행렬식 ]

- 역행렬의 존재여부를 확인할 때 사용하는 수식 -> 행렬식

- 행렬식은 정방행렬 (Square Matrix)에서만 존재한다.

 

[ 행렬식을 이용한 역행렬 ]

- 역행렬은 행렬식을 통해서 쉽게 구할 수 있다.

- 모든 행렬이 역행렬을 가지는 것은 아니다.

- 정방행렬이고 행렬식이 0이 아닌 행렬만 역행렬이 가능하다.

 

[ 선형성 ]

선형성 (Linearity) : 함수 f에 대해 가산성(Additivity)과 동차성(Homogeneity)을 만족하는 함수의 성질.

- f(a+b) = f(a)+f(b)

- f(ka) = kf(a)

 

[ 선형 변환 ]

선형변환 (Linear Transformation) : 벡터공간 V에서 벡터공간 W사이의 선형성을 만족하는 함수 

- 벡터공간 V에 속한 벡터 u, v에 대해서 가산성 성립.

- 벡터공간 V에 속한 u와 스칼라 k에 동차성 성립.

 

[ 행렬의 관계 ]

  벡터공간 V의 표준기저벡터를 이용해 선형결합으로 모든 벡터 표현

- 크기 변환 행렬 (S) : 벡터공간을 선형변환을 통해 주어진 크기만큼 변환시키는 행렬

- 회전 변환 행렬 (R) : 벡터공간을 선형변환을 통해 주어진 각도만큼 회전시키는 행렬

- 전단 변환 행렬 (H) : 벡터공간을 선형변환을 통해 주어진 크기만큼 한 축 방향으로 밀어서 왜곡시키는 행렬

 

[ 역행렬 ] 

- 역행렬의 기하학적 의미 : 행렬을 통해 선형 변환된 벡터 공간을 원래의 벡터 공간으로 변환.

- 행렬식의 기하학적 의미 : 역행렬을 구할 때 행렬의 행렬식이 0이면 역행렬을 구하지 못함.

- 크기 변환 역행렬 : 선형변환을 통해 크기 변환된 행렬을 원래 모습으로 되돌리는 행렬.

- 회전 변환 역행렬 : 선형변환을 통해 회전 변환된 행렬을 원래 모습으로 되돌리는 행렬.

- 전단 변환 역행렬 : 선형변환을 통해 주어진 크기만큼 한 축 방향으로 밀어서 생긴 왜곡을 원래대로 되돌리는 행렬.

- 선형변환 순서를 적용시 행렬과 벡터의 곱셈 순서에 유의해야 한다.

 

[ 7주차 ]

[ 아핀 공간의 이해 ]

벡터 공간에서의 벡터는 크기와 방향만 같으면 동일한 벡터이다.

공간상에서 크기와 방향만 고려한다면 위치에 대한 고려가 불가능하다.

- 아핀공간 : 원점이 없으며, 점들 간의 상대적 위치만 고려하는 벡터공간.

  벡터 공간에 점의 개념을 추가해서 벡터와 점을 표현한 공간이다.

- 아핀 공간의 점 : 공간상 특정 위치를 표현, 방향은 없고 크기만 있으며 원점이 기준이 아니다.

  동차좌표계를 이용하여 기존 점의 좌표에 하나의 차원을 추가하여 추가한 마지막 차원을 1로 표현한다.

- 아핀 공간의 벡터 : 공간상에서 시작점과 끝점을 가장 짧게 연결하는 벡터. 시작점에서 끝점으로 이동하는 벡터. 동차좌표계로 벡터를 표현하면 마지막 차원의 값은 0이다.

 

- 아핀 공간의 임의의 점에 벡터를 더하면 아핀 공간의 새로운 점을 취득 가능하다.

- 아핀 공간의 모든 점들은 벡터와 연관이 되어있다.

 

[ 아핀 공간과 벡터공간의 차이 ]

- 벡터공간은 원점을 가지고 있으나, 아핀공간은 원점이 없다.

- 벡터공간은 기저벡터로 표현되고, 아핀공간은 점과 벡터의 조합으로 표현된다.

- 동차좌표계를 이용해서 아핀공간을 표현하는 경우가 많다. 

- 벡터 공간에서는 선형결합만으로는 이동 표현이 불가능하다.

- 아핀공간에서는 원점이 없으므로 벡터를 통한 연산시에 크기, 전단, 회전 뿐만 아니라 이동에 대한 표현또한 가능하다.

 

[ 아핀 결합 ]

- 아핀 공간에서 점들의 결합을 통해서 새로운 점을 생성한다.

- 아핀 공간 점들에 스칼라 곱셈을 통해 일차식의 합으로 표현한다.

- 스칼라 계수들의 합이 1이라는 제약조건이 있다.

- 선형결합으로 동차좌표계에서 점으로 표현하려면 k1 + k2 + k3 = 1

- 아핀 공간 두 점의 아핀 결합으로 새로운 점을 생성할 경우 0 <= k <= 1 선분 AB안에 새로운 점 C가 생성됨.

 

[ 아핀 변환의 이해 ]

아핀 변환 : 선형 변환에 이동 변환의 결합으로 구성된 변환

- 원점을 지나는 선형 변환에 대해서 이동 변환을 더한 형태.

- 선형 변환은 행렬의 곱셈을 통해서 구현 가능.

- 이동 변환은 벡터의 덧셈으로 구현 가능.

- 선형변환과 이동변환을 합친 하나의 행렬을 원하기 때문에 동차좌표계를 이용한다.

 

[ 동차 좌표계 ]

동차좌표계 (Homogeneous Coordinate) : 기존 차원에서 하나의 차원을 추가해서 표현한 좌표계

- 동차좌표계의 마지막 성분 값이 1이면 점(Point), 0이면 벡터(Vector).

 

[ 변환의 확장 ]

- 아핀 변환을 통해서 이동, 크기, 회전 3개의 변환 확인

- 변환은 행렬의 곱을 기반으로, 행렬의 곱셈 순서에 따라 결과가 다르다.

- 크기, 회전, 이동 변환 순서로 곱셈한다.

- 원하는 위치의 이동을 위해서는 이동을 가장 나중에 진행해야 한다.

728x90
반응형