본문 바로가기

그래픽스

[그래픽스] 쿼터니언(실습)

쿼터니언(이론)에서 배운 두번째 방법,

회전에 대한 쿼터니언 q를 구하고 그 쿼터니언으로부터 회전 행렬을 구해보자.

 

먼저 회전축 Vector3가 있어야하고 normalize로 정규화되어 있어야 한다.

이 회전축 Vector3을 n이라고 했을 때, 쿼터니언 생성자를 이용하면 회전에 대한 쿼터니언 q는

Quaternion q(n*sin(quatTheta*0.5f),cos(quatTheta*0.5f)) 가 된다.

이 쿼터니언을 Matrix::CreateFromQuaternion 함수에 넣으면 회전 행렬을 구할 수 있다.

 

쿼터니언 q를 구할 때도 사실 수식을 이용한 생성자가 필요없다.

Quaternion::CreateFromAxisAngle(회전축, 회전각도)를 이용하면

회전축대로 회전각도만큼 회전한 쿼터니언을 구할 수 있다.

 

또한 Quaternion::FromRotationToRotation(이전벡터, 현재벡터)

이전 벡터에서 현재 벡터까지 회전한 쿼터니언을 구할 수 있다.