Main Content

rotvecd

쿼터니언을 회전 벡터(단위: 도)로 변환

R2019b 이후

설명

예제

rotationVector = rotvecd(quat)은 쿼터니언 배열 quat을 동일한 회전 벡터(단위: 도)로 구성된 N×3 행렬로 변환합니다. quat의 요소는 변환 전에 정규화됩니다.

예제

모두 축소

임의의 쿼터니언 스칼라를 회전 벡터(단위: 도)로 변환합니다.

quat = quaternion(randn(1,4));
rotvecd(quat)
ans = 1×3

   96.6345 -119.0274   45.4312

입력 인수

모두 축소

변환을 수행할 쿼터니언으로, quaternion 객체 또는 임의 차원의 quaternion 객체 배열로 지정됩니다.

출력 인수

모두 축소

회전 벡터 표현(단위: 도)으로, 회전 벡터로 구성된 N×3 숫자형 행렬로 반환됩니다. 여기서 N은 quat 인수의 쿼터니언 개수입니다.

각 행은 회전 벡터의 [X Y Z] 각도(단위: 도)를 나타냅니다. rotationVector의 i번째 행이 요소 quat(i)에 대응합니다.

회전 벡터의 데이터형은 quat의 기본 데이터형과 같습니다.

데이터형: single | double

알고리즘

3차원의 모든 회전은 총 4개의 요소, 즉 요소를 3개 가진 회전 축과 회전 각도로 표현할 수 있습니다. 회전 축이 단위 길이로 제한되면 회전 각도를 벡터 요소에 분배할 수 있으므로 3개 요소의 표현으로 줄일 수 있습니다.

쿼터니언은 다음과 같이 축-각도 형식으로 표현할 수 있습니다.

q=cos(θ2)+sin(θ2)(xi+yj+zk),

여기서 θ는 회전 각도(단위: 도)이고 [x, y, z]는 회전 축을 나타냅니다.

쿼터니언이 다음과 같은 형식으로 주어졌을 때

q=a+bi+cj+dk,

회전 각도는 쿼터니언의 축-각도 형식을 사용하여 구할 수 있습니다.

θ=2cos1(a).

정규화된 축을 가정할 경우, θ를 부분 b, c, d에 분배하여 쿼터니언을 정보의 손실 없이 회전 벡터로 다시 작성할 수 있습니다. q의 회전 벡터 표현은 다음과 같습니다.

qrv=θsin(θ2)[b,c,d].

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2019b에 개발됨

참고 항목

함수

객체