본문 바로가기

Graphics Note

Vector/Matrix class

3D 프로그래밍을 할때 Vector나 Matrix 연산은 필수불가결한 부분이다. directx야 매트릭스가 있지만(11부턴 없다ㅜ), openGL은 api가 제공하는 벡터, 매트릭스 함수가 없어 직접 만들어뒀다.

(템플릿으로 만들었다가 오히려 쓰기 불편해 다 뜯어고쳤다..)

 

코드가 좀 긴데, 핵심적인 기능만 설명한다. (벡터야 다 아니깐 패스)

* Identity: 정사각매트릭스를 항등행렬로 만든다.

* Transpose: 행과 열을 치환한 매트릭스를 반환한다.

* CofactorMatrix: cofactor(여인수) 매트릭스를 반환한다.

* Adjugate(Adjoint): adjugate = transpose of cofactor matrix. 수반행렬이라 한다.

* Inverse: A^-1 = adj(A)/det(A). 역행렬을 반환한다.

* Determin: determinant를 반환한다.

 

 

 

Inverse matrix 연산에 있어서 4x4부턴 adjugate로부터의 계산은 그닥 추천하지 않는 방법이라고 한다. 상황에 따라 다르긴 하지만 가우스 조르단이나 LU decomposition이 더 좋다고하는데, 선형대수시간에 많이 조는바람에 기억이 잘 안난다 ㅜㅜ

 

'Graphics Note' 카테고리의 다른 글

Normal Matrix  (1) 2013.12.15
glHint  (0) 2013.12.14
glRotatef+glTranslatef VS gluLookAt for View transformation  (4) 2013.12.02
Delaunay triangulation in 2D  (1) 2013.10.06
외곽선 검출  (0) 2013.08.27