{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

quaternions

# quaternions - Some Notes on Unit Quaternions and Rotation...

This preview shows pages 1–3. Sign up to view the full content.

Some Notes on Unit Quaternions and Rotation Berthold K.P. Horn Copyright © 2001 A quaternion can be conveniently thought of as either (i) a vector with four components; or (ii) a scalar plus a vector with three components; or (iii) a complex number with three different “imaginary” parts. Here are three quaternions written in the “hyper complex” number form: ˚p = p 0 + ip 1 + jp 2 + kp 3 ˚ q = q 0 + iq 1 + jq 2 + kq 3 ˚ r = r 0 + ir 1 + jr 2 + kr 3 The rules for multiplication are i 2 = j 2 = k 2 = − 1 (reminiscent of the square of the imaginary unit of complex numbers) and ij = − ji = k jk = − kj = i ki = − ik = j (reminiscent of pairwise cross products of unit vectors in the directions of orthogonal coordinate system axes). Then, if ˚ = r ˚q, we obtain from the rules above ⎤ ⎡ r 0 p 0 p 1 p 2 p 3 q 0 ⎥ ⎢ r 1 p 1 p 0 p 3 p 2 ⎥ ⎢ q 1 = ⎥ ⎢ r 2 p 2 p 3 p 0 p 1 ⎦ ⎣ q 2 r 3 p 3 p 2 p 1 p 0 q 3 or ˚ q r = P ˚ which can also be written in another way ⎤ ⎡ r 0 q 0 q 1 q 2 q 3 p 0 ⎥ ⎢ r 1 q 1 q 0 q 3 q 2 ⎥ ⎢ p 1 = ⎥ ⎢ r 2 q 2 q 3 q 0 q 1 ⎦ ⎣ p 2 r 3 q 3 q 2 q 1 q 0 p 3 or r = Q p ˚ ˚ These equations spell out in detail how to multiply two quaternions. Im- portantly, multiplication is not commutative.

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
( ) ( ) 2 Note that the matrices appearing above are orthogonal, in fact PP T = p · p ) I where I is the 4 × 4 identity matrix. The above gives two use- ( ˚ ˚ ful isomorphisms between quaternions q ) with orthogonal 4 × 4 p and ˚ matrices ( P and Q ) one for “pre-multiplication” and one for “post- multiplication.” “Scalar plus Vector” notation Using the more compact “scalar plus vector” notation, we can write, ˚ q = (q, q ), and ˚ p = (p, p ), ˚
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}