본문 바로가기

프로그래밍/기본기ㆍ자료구조

GimbalLock (짐벌락)

728x90
반응형

오일러각을 이용한 회전에서 같은 방향으로 두 회전 축이 겹치는 현상
x,y,z로 세 개의 회전축이 있으며 회전 순서에 따라 한축의 각도가 90도가 되었을 때 나머지 두 축이 겹치게 된다.
예를들어 x,y,z 순으로 회전한다고 하면 맨 처음 x를 회전하고, 그 다음 y를 회전하고, 마지막으로 z를 회전한다.
이 때 y축이 90도로 회전할 때 짐벌락이 발생한다.

듣기로는 단순히 수학적으로는 아무 문제 없는 결과라고 하는데..
3차원 상에서 좌표변환 시에 문제가 발생한다.
(유니티3D에서 transform에 있는 rotation이 오일러각을 이용한 녀석이다.)

짐벌락을 피하려면
1. 쿼터니언(quaternion 사원수)을 사용한다.
2. 회전하는 순서를 바꾼다.
- 이 방법에 대해서는 직접 해본것은 아닌데 자주 회전하게될 축, 가장 회전을 안하게 될 축, 나머지 축 순으로 하면 된다고 한다.
이유는 두 번째 축이 90도로 회전하게 되면서 첫 번째 축과 세 번째 축이 겹치면서 짐벌락이 발생하기 때문에
두 번째 축이 90가 안되게 하면 된다는 것이다.

 

 

 

 

 

다람쥐와 포동포동이

 

RememberCook 9월 28일 정식 출시!

두번째 게임인 RememberCook이 출시되었습니다. 귀여운 캐릭터들이 나오는 간단한 게임이며 플레이어의 공간인지능력을 테스트하는 게임입니다. 아래 링크를 통해 다운 받으실 수 있으니 많은 관��

chipmunk-plump-plump.tistory.com

반응형

'프로그래밍 > 기본기ㆍ자료구조' 카테고리의 다른 글

Generic (제네릭)  (3) 2020.04.12
Deadlock (데드락)  (0) 2020.04.12
Sealed (상속 한정 키워드)  (0) 2020.04.11
Interface와 abstract의 차이  (0) 2020.04.11
Interface (인터페이스)  (0) 2020.04.11