25/03/25 멋사정리

YSB1026·2025년 4월 3일
0
  1. 사원수(Quaternion)

사원수(Quaternion)를 써야 하는 이유는 크게 깜빡임(Gimbal Lock) 방지, 부드러운 회전(Interpolation), 안정적인 연산이라는 세 가지 핵심 이유가 있어.

🔥 1. 깜빡임(Gimbal Lock) 방지
깜빡임(Gimbal Lock)은 오일러 각(Euler Angles)로 회전을 표현할 때 특정한 각도에서 축 하나가 잠겨버려서 회전이 제대로 안 되는 문제야.

🔹 예제: 유니티에서 X축을 90도 회전하면...?
오일러 각으로 (90, 0, 0)을 적용하면, Y축과 Z축이 정렬되면서 Y축 회전이 Z축과 겹쳐버려.
→ 결과적으로 Y축을 돌려도 Z축이 같이 돌아가면서 원하는 회전이 불가능해지는 현상이 생겨.

✅ 사원수(Quaternion)를 사용하면?

4차원 벡터로 회전을 표현해서 깜빡임 없이 부드러운 회전이 가능해!

오일러 각처럼 특정한 축이 없어지거나 겹치는 문제가 없음.

    mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    direction = (mousePos - t.position).normalized;
    angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;

tranform.rotation = Quaternion(0,0,angle);

0개의 댓글