Uncategorized No Comments

쿼터니언 예제

해밀턴의 동기는 3D 공간에서 벡터에서 다른 벡터로 변환하는 기하학적 연산을 만드는 것이었습니다. 이 연산자는 길이와 방향을 변경하는 두 벡터 사이의 기하학적 몫(비율)이며, 작업이 4개의 매개변수가 필요하기 때문에 쿼터니언이라고 합니다. 또는(이 표기는 숫자 분할이나 곱셈과 같지 않습니다. 대신”쿼터니온 연산자 q를 생성하거나 연산자 q를 “로 변환”으로 변환합니다. 쿼터니온 빼기는 스칼라 곱셈 및 쿼터니온 첨가로부터 파생될 수 있다. 위의 섹션에서는 3×3 회전 행렬 Q에서 쿼터니온 q를 복구하는 방법을 설명하지만, 라운드 오프 오류로 인해 순수한 회전이 아닌 일부 행렬 Q가 있다고 가정하고 Q를 가장 정확하게 나타내는 쿼터니온 q를 찾으려고 합니다. 이 경우 우리는 대칭 4 × 4 행렬을 구성 같은 방법으로 쿼터 니온은 규칙 i2 = j2 = k2 = k = i k = -1 및 승증의 통근 법칙을 제외한 일반적인 대수 규칙을 만족 추상 기호 i, j, k를 도입하여 정의 할 수 있습니다 (익숙한 전 이러한 비분질 곱셈의 충분행렬 곱셈입니다). 이로부터 쿼터니온 기반 요소의 곱셈에 대한 규칙과 같은 쿼터니온 산술 규칙의 모든 규칙이 따릅니다. 이 규칙을 사용하면 이 간단한 예제에서 평면 {(vec{X} )에 정의된 타원의 회전을 보여 준다. 녹색점과 빨간색 점은 각각 타원의 초기 및 최종 위치입니다. 검은색 대시 점선은 회전 축입니다. 회전 각도는 (frac {pi}{4} )이며 회전 벡터는 쿼터니언의 벡터 부분을 부정하여 정의됩니다.

쿼터니온과 그 접합체의 곱셈은 가환적입니다. 그러나 쿼터니온 p에 단위 쿼터니온 q를 곱하면 쿼터니온 p의 벡터 부분의 길이(norm)를 보존하지 못한다. 예를 들어; 콘웨이, 제이, 스미스, D. 쿼터니언과 옥토니온에. 웰즐리, MA: K 피터스, 2001. 쿼터니온은 세 개의 가상 번호((i), (j) 및 (k) )을 가진 복잡한 숫자의 일반화입니다. 3차원 공간에서 강체 또는 좌표 프레임의 방향을 나타내는 데 사용할 수 있는 4차원 복합 번호입니다. 쿼터니온의 일반적인 정의는 베이커, A.

L. 쿼터니온이 대수 작전의 결과로 주어집니다. 뉴욕: 반 노스트랜드, 1911년. Julstrom, B. A. “실제 쿼터니언을 사용하여 3차원 회전을 나타냅니다.” 학부 수학 및 응용 프로그램의 UMAP 모듈, 모듈 652. 렉싱턴, MA: COMAP, Inc., 1992. Tait, P.

G. 쿼터니언에 대한 초등 논문, 3rd ed., enl. 케임브리지, 영국: 케임브리지 대학 출판부, 1890. 다운스, L. “CS184: 쿼터니온을 사용하여 회전을 표현합니다.” http://www-inst.eecs.berkeley.edu/~cs184/sp08/lectures/05-3DTRansformations.pdf. 우리는 회전을 나타내는 두 가지 가장 일반적인 방법을 제시 할 것이다: 오일러 각도와 쿼터니온. 가장 중요한 것은 쿼터니온을 사용해야 하는 이유를 설명해 드립니다. 오일러 각도의 또 다른 좋은 사용은 FPS 카메라입니다 : 당신은 제목 (Y)에 대한 하나의 각도를 가지고, 위 / 아래 (X)에 대한 하나.

예제는 공통/controls.cpp를 참조하십시오. 산딘, 디. 당, Y.; 카우프만, 엘. 그리고 DeFanti, T. “쿼터니오닉 줄리아 세트의 다이아몬드” http://www.evl.uic.edu/hypercomplex/html/diamond.html. 회전 행렬의 추적(대각선 요소의 합)이 0이거나 매우 작을 때 몇 가지 간단한 메서드가 불안정한 경향이 있기 때문에 회전 행렬을 쿼터니언으로 변환할 때주의해야 합니다. 직교 행렬을 쿼터니언으로 변환하는 안정적인 방법은 Rotation 행렬 아티클의 쿼터니언 하위 섹션을 참조하십시오.