본문 바로가기

Graphics Note

[Mathematics] complex number

복소수(complex number)는 사원수(quaternion)를 이해하기 위해서 알아야할 개념이다.

사원수는 회전보간(interpolation)이나 카메라의 움직임을 설명할 때 빼놓을 수 없는 부분이기 때문에 사원수와 이의 배경인 복소수를 이해하는것이 중요하다. 사원수는 벡터의 개념이 나오기 전 삼차원의 공간을 표현할 때 중요한 이론이었고, 이 개념을 기반으로 정립된 이론도 많다. (사원수의 개념은 해밀턴 씨가 처음으로 발견했다.) 벡터가 나온 후 많이 잊혀졌지만 애니메이션 분야에선 아직까지 사원수를 대체할 만한 이론은 없다. 그러므로 Animated mesh를 표현하기 위해선 사원수를 이해하거나 사원수를 이해한 사람이 잘 만들어 놓은 라이브러리를 이용해야한다. (아직까지 난 후자다..)

 

복소수는 실수와 허수가 결합된 복함적인 수  를 의미한다. 다음 식과 같이 표현되는데, a와 b는 실수를, i는 허수를 나타낸다.

 

복소수도 일반적인 대수학의 법칙(결합법칙, 교환법칙)을 따르는데, 재밌는 점은 켤레복소수(conjugate complex number)의 등장에서 시작된다.

켤레복소수는 어떤 복소수에 대해서 허수부분의 부호가 반대인 수를 말한다. 위의 복소수 표현의 켤레복소수는 

이다.

더 흥미로운 얘기를 하기에 앞서 허수가 가지는 성질을 상기해보자. 허수 는 계속하여 곱했을때 자기자신으로 돌아오는 신기한 형태를 가진다.

 

그런데 복소수의 도 켤레복소수와 곱해질때 이러한 성질을 띄는데 이게 참 흥미롭다.

 

복소수의 합 곱은 일반적으로 복소수의 형태를 띄는데, 켤레복소수를 곱하면 실수의 영역으로 돌아온다. 뭐 그냥 그렇다는거고 다시 본론으로 돌아와보자.

 

레온하르트 오일러(Leonhard euler)는 심심했는지 격자위에 복소수를 놓아가면서 놀았다 (미친사람이 분명하다) 그러다가 복소수가 그래프로 표현될때 재미난 현상을 띈다는 것을 발견했다. 가로는 실수축으로 하고 새로를 허수축으로 했을 때 복소수를 표현한 후 계속해서 를 곱해주면 그때마다 생기는 점은 그래프상에서 씩 회전한 결과를 나타낸다는 것이다.

 

그림을 보면 더 쉽게 알 수 있다. 계속해서 허수를 곱했을 뿐인데 반시계방향(CCW)으로의 회전을 표현한다.

 

이러한 복소수의 성질은 사원수로 확장되면서 3차원에서의 회전변환에 사용되는것이다. 오일러각 또한 회전변환에 많이 사용되지만 짐벌락이라는 치명적인 문제로 프로그래밍 분야(특히 애니메이션 분야)에만은 사원수를 이길 수가 없다.

 

참고 : Mathematics for computer graphics 3rd / John Vince

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

[Mathematics] quaternion(사원수)  (1) 2013.07.10
[Mathematics] matrices for transformation  (0) 2013.07.09
유리같은 셰이딩  (0) 2013.06.25
Directx DXUT Library build & include  (0) 2013.03.30
[OpenGL]Model from .ASE  (0) 2012.12.12