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
'개발 > Unity' 카테고리의 다른 글
[Unity] Legacy Animation, Mecanim Animation (0) | 2019.04.01 |
---|---|
[Unity] Collision Type 속성 (0) | 2019.03.18 |
[Unity] Rigidbody 컴포넌트 AddForce, AddRelative 함수 (0) | 2019.03.17 |
최근댓글