Euler Angle - 오일러각

강체가 놓인 방향을 3차원 공간에 표시하기 위해 오일러가 도입한 세 개의 각도이다.

3차원 공간에 놓인 강체의 방향은 오일러 각도를 사용하여 세 번의 순차적인 회전을 통해 얻을 수 있다.

 

예를 들면 x, y, z의 순으로 회전한다면

x 축을 기준으로 먼저 회전한 후에, y축을 회전할때는 이동한 x축에도 영향을 주고,

z축을 회전할 때는 x, y축에도 영향을 준다는 것이다.

따라서 세개의 축은 종속적인 관계이다.

회전하는 순서에 따라 같은 오일러각이라도 결과가 달라질 수 있다.

 

Gimbal Lock - 짐벌락

특정 축이 회전을 했을 때, 나머지 두 축이 겹쳐서 한 축의 역할이 없어지는 현상이다.

오일러 각을 사용하게 되면 각 회전을 순차적으로 하게 된다.

XYZ XZY YXZ YZX ZXY ZYX 로 총 여섯가지의 순서가 있다.

어떤 경우의 수라도 첫 번째, 두 번째 회전의 결과로 세번째 축이 이전 축 중 하나와 같은 방향을 가리킬 수 있다.

 

비행기를 예로 들어보자.

빨간링 - 비행기의 수직적인 시야 각도를 조절하는 링

파랑링 - 비행기의 수평적인 시야 각도를 조절하는 링

초록링 - 비행기의 날개 각도를 조정하는 링

출처 - https://en.wikipedia.org/wiki/Gimbal_lock

 

만약 위의 그림에서

초록링을 먼저 한바퀴 회전시킨뒤 빨간링을 화살표 방향으로 90도 회전 시켰다면

초록링파랑링이 서로 겹쳐버리게 된다. 따

따라서 초록링파랑링은 모두 날개 각도를 조정하는 초록링의 원래 역할을 하게 된다.

파랑링의 역할이 없어지는 것이다.

 

https://youtu.be/zc8b2Jo7mno
참고 동영상입니다. 글보다 영상으로 보는게 이해가 훨 잘 될 거에요.

 

Quaternion - 쿼터니언

사원수로, 복소수를 확장한 일종의 4차원 벡터.

세개의 축을 동시에 회전시킨다.

짐벌락이 생기지 않는 장점이 있지만 쿼터니언 하나로 180도 보다 큰 회전을 나타낼 수 없고 직관적이지 못하다.  

Unity에선 내부적으로 쿼터니언( x, y, z, w)을 사용하지만 쉽게 편집할 수 있도록 Inspector에 오일러 각의 값을 표시합니다.

Variables

  • eulerAngles - 회전의 오일러 각도 반환
  • this[int] - 0~3의 배열을 사용하여 x, y, z, w 요소에 접근
  • w, x, y, z

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기