1. 오일러각 

위의 비행기를 예로 들자면

z축 기준의 회전각을 roll

x축 기준의 회전각을 pitch

y축 기준의 회전각을 yaw라고 가정한다.

 

오일러각의 장점

- 오일러각에 의한 표현은 자유도 3에 3개의 계수를 저장하기 때문에 저장 공간 면에서는 유리하다.

- 회전각 자체를 그대로 저장하므로 표류의 문제도 없어진다.

 

x, y, z축 기준의 회전각을 각각 a, b, r이라고 하면 x, y, z축을 기준으로 순차적으로 회전한 결과는 다음과 같다.

 

비행기 그림을 예로 들면 롤링에 의해 z축을 기준으로 회전했다면 회전 결과 모델 좌표계의 x, y 축 방향은 이전과는

달라지게 된다.

 

이는 회전을 적용하는 순서가 중요함을 의미한다.

 

일반적으로 x축 기준으로 a, y축 기준으로 b 만큼 회전한 결과는 y축 기준으로 b, x축 기준으로 a만큼 회전한 결과와 일치하지 않게 된다.

 

즉 회전에 있어서는 교환법칙이 성립하지 않는다 는 뜻이다.

오일러 각 표현에서 회전을 보간하기 위해서는 오일러 각 자체를 보간하여야 한다.

 

물론 (x, y, z) 또는 (x, z, y) , (y, x, z) 등 임의의 축 순서를 정해서 축별로 점차 회전각을 증가 시킬 수도 있다. 

그러나 이경우 오일러의 각 표현은 몇가지 문제점이 발생하게 된다.

 

첫번째로 복합 변환의 결과을 예측하기 어렵게 된다.

 

예를 들어, 어떤 물체를 오일러 각(10도, 20도, 30도)에 의해 회전하고 이어서 회전한 좌표축을 기준으로 다시 (40도, 50도, 60도)로 회전할 경우 이는 원래 물체를 (50도, 70도, 90도) 로 회전한 결과와는 다르게 된다. 

그 이유는 이미 첫번째 회전변환에서 좌표축의 방향이 변했기 때문이다.

 

2. 짐벌락 현상

위의 첫 그림에서 x,y,z축이 직교함을 볼 수 있다. 이 상태에서 x축 기준으로 일정 각도를 회전했다고 가정하고 이어서 z축을 기준으로 90도 회전하면 두번째 그림의 모습 즉, x축과 y축이 나란해 진다. 따라서 만약 현재 상태에서 y축을 기준으로 회전을 가하면 이는 이전에 x축을 기준으로 이미 회전한 각도에 영향을 미치게 된다.  x축과 y축이 겹쳐버렸다는 의미이다.

 

이는 오일러각 표현의 자유도(DOF) 3에서 2로 줄어들었다는 것을 의미한다. 

 

 회전결과 모델 좌표축의 방향이 변하기 때문에 x, y, z축 기준의 회전이 더 이상 서로 독립적이지 않고 겹치게 되므로 위의 상황처럼 x, y축이 의존적(한축이 움직이면 다른축이 영향을 받게되는)으로 변하게 된다는 것. 

 

물론 짐벌락 현상은 어떤 축을 기준으로 90도 회전하는 특수한 경우에 발생하지만 그 결과 회전은 더 이상 x,y,z축을 기준으로 90도 회전하는 특수한 경우에 발생하지만 그 결과 회전은 더 이상 3차원 공간의 회전이 아니라 2차원 평면의

회전으로 변하게 되어 매우 부자연스러운 모습이 된다.

 

3. 축 각 표현

오일러 각은 모델 좌표계의 x,y,z 축을 기준으로 한다.

그러나 일반적으로 이처럼 고정된 축방향을 기준으로 하는 회전을 원하는 경우는 적다.

 

오히려 개발자들은 임의의 축 방향을 기준으로 물체가 회전하기를 원하게 된다.

 

임의의 회전축을 기준으로 하는 회전을 x, y, z에 대한 회전의 합성으로 표현한다고 하더라도 변화 과정을 직관적으로 알기 어려워 진다. 

 

이러한 부분을 보완한 조금 더 직관적인 회전 표현인 축-각(Axis-Angle)표현에 대해 설명해보겠다.

축-각 표현에서는 회전축과 회전각을 사용한다.

 

위 그림의 x, y, z는 물체 모델 좌표계의 좌표축이다.

 

축-각 표현에서 회전축은 임의로 지정할 수 있으며,

이는 모델 좌표계 원점에서 시작하는 단위 벡터 n(nx, ny, nz)로 나타낸다.

 

회전각은 이 축을 기준으로 회전할 각도를 반 시계 방향으로 나타낸 것이다.

 

 

+ Recent posts