This page is the drill hall for the quaternion rotation formula . The parent note derived v ′ = q v q − 1 . Here we throw every kind of input at it — every axis, every sign of angle, the fixed vector, the zero vector, the zero rotation, the full 36 0 ∘ turn, composition, and a real spacecraft problem — so you never meet a case you haven't seen worked.
Everything rests on one recipe, so let us restate it in plain words before any symbol appears again.
Recall The recipe in one breath
A quaternion is four numbers: a scalar w and a vector v = ( x , y , z ) , written q = ( w , v ) . To turn (rotate) a 3D arrow v by angle θ about a spin-axis n ^ (a unit-length arrow saying "spin around ME"):
Build q = ( cos 2 θ , sin 2 θ n ^ ) — the half-angle lives inside.
Wrap the arrow as a pure quaternion v = ( 0 , v ) (zero scalar).
Sandwich: v ′ = q v q − 1 , where q − 1 = ( w , − v ) for a unit q .
The output v ′ = ( 0 , v ′ ) ; read off v ′ .
We will mostly shortcut the algebra using the equivalent Rodrigues' rotation formula the parent proved,
v ′ = v cos θ + ( n ^ × v ) sin θ + n ^ ( n ^ ⋅ v ) ( 1 − cos θ ) ,
but Example 1 does the full Hamilton-product sandwich by hand once so you trust it.
Every problem this topic throws is one of these cells. Read the table as a checklist of inputs you must be able to survive — each row is a different kind of thing the formula can be fed, and the "Trap" column names the mistake that cell tends to trigger. The worked examples then walk each row so no cell is left as words-only.
#
Case class
The trap this cell hides
Example
A
Axis-aligned, positive angle
forgetting the half-angle in q
Ex 1, Ex 2
B
Vector on the axis (degenerate)
expecting it to move
Ex 3
C
Negative / reversed angle
wrong spin direction
Ex 4
D
Identity / zero rotation (θ = 0 )
dividing by sin 2 θ = 0 to get an axis
Ex 5
E
Full turn θ = 36 0 ∘ , ± q double cover
thinking q = − 1 means "flipped"
Ex 5
F
Tilted axis, general vector
non-unit axis silently rescales
Ex 6
G
Composition (order matters)
writing q 1 q 2 instead of q 2 q 1
Ex 7
H
Real-world word problem (GNC)
mixing body vs inertial frame
Ex 8
I
Recover axis+angle from a given q
reading axis off an un-normalised q
Ex 9
J
Zero vector input v = 0
expecting a division-by-length error
Ex 10
v = ( 1 , 0 , 0 ) by θ = 9 0 ∘ about the z -axis, using the Hamilton product directly.
Forecast: + x spun 9 0 ∘ counter-clockwise about + z should swing to + y . Guess the answer before reading. Where do you think it lands?
Step 1 — Build q with the half-angle.
n ^ = ( 0 , 0 , 1 ) , 2 θ = 4 5 ∘ , so cos 4 5 ∘ = sin 4 5 ∘ = 2 2 ≈ 0.7071 .
q = ( 2 2 , 0 , 0 , 2 2 ) , q − 1 = ( 2 2 , 0 , 0 , − 2 2 ) .
Why this step? The sandwich uses q twice, so we bury only half the turn (4 5 ∘ ) inside it; the two halves rebuild the full 9 0 ∘ .
Step 2 — Wrap the vector. v = ( 0 , 1 , 0 , 0 ) (scalar part 0 ; this is what "pure" means).
Why? Only pure quaternions represent real 3D arrows, so we must first embed v .
Step 3 — First product q v . Using the Hamilton rule ( w 1 w 2 − v 1 ⋅ v 2 , w 1 v 2 + w 2 v 1 + v 1 × v 2 ) restated just above, with q = ( 2 2 , ( 0 , 0 , 2 2 )) and v = ( 0 , ( 1 , 0 , 0 )) :
scalar: 2 2 ⋅ 0 − ( 0 , 0 , 2 2 ) ⋅ ( 1 , 0 , 0 ) = 0
vector: 2 2 ( 1 , 0 , 0 ) + 0 + ( 0 , 0 , 2 2 ) × ( 1 , 0 , 0 ) = ( 2 2 , 0 , 2 2 )
Here ( 0 , 0 , 2 2 ) × ( 1 , 0 , 0 ) = ( 0 ⋅ 0 − 2 2 ⋅ 0 , 2 2 ⋅ 1 − 0 ⋅ 0 , 0 ⋅ 0 − 0 ⋅ 1 ) = ( 0 , 2 2 , 0 ) , so the vector sum is ( 2 2 , 2 2 , 0 ) .
So q v = ( 0 , 2 2 , 2 2 , 0 ) .
Why? This intermediate is generally not pure — it can hold a scalar — which is exactly why we still need the right-hand q − 1 to scrub the scalar back to zero (Step 1 closure proof in the parent).
Step 4 — Second product ( q v ) q − 1 . Multiply ( 0 , ( 2 2 , 2 2 , 0 )) by q − 1 = ( 2 2 , ( 0 , 0 , − 2 2 )) :
scalar: 0 ⋅ 2 2 − ( 2 2 , 2 2 , 0 ) ⋅ ( 0 , 0 , − 2 2 ) = 0 ✓ (pure, as promised)
vector: 0 ⋅ ( 0 , 0 , − 2 2 ) + 2 2 ( 2 2 , 2 2 , 0 ) + ( 2 2 , 2 2 , 0 ) × ( 0 , 0 , − 2 2 )
The cross term ( 2 2 , 2 2 , 0 ) × ( 0 , 0 , − 2 2 ) = ( 2 2 ⋅ ( − 2 2 ) − 0 , 0 − 2 2 ⋅ ( − 2 2 ) , 0 ) = ( − 2 1 , 2 1 , 0 ) , and the scaled part 2 2 ( 2 2 , 2 2 , 0 ) = ( 2 1 , 2 1 , 0 ) . Sum: ( 0 , 1 , 0 ) .
v ′ = ( 0 , 1 , 0 )
Verify: scalar part came out 0 (valid vector ✓); length ∥ ( 0 , 1 , 0 ) ∥ = 1 = ∥ ( 1 , 0 , 0 ) ∥ (rotations preserve length ✓); direction is + y , matching the forecast.
Intuition What the figure below shows
The picture puts you looking straight down the spin-axis: + z points out of the page (yellow label). The blue arrow is the input v = ( 1 , 0 , 0 ) ; the green arc is the 9 0 ∘ sweep; the red arrow is the output v ′ = ( 0 , 1 , 0 ) . Watch the blue arrow ride the green arc a quarter-turn counter-clockwise onto the red — that swing is what q v q − 1 computed algebraically above.
v = ( 2 , 0 , 0 ) by θ = 12 0 ∘ about the y -axis.
Forecast: about + y , the x -axis tips down toward − z . After 12 0 ∘ (past the 9 0 ∘ mark, which sits on − z ) it should land partly in − x , partly in − z . Guess the signs.
Step 1 — Rodrigues shortcut. n ^ = ( 0 , 1 , 0 ) , n ^ ⋅ v = 0 (perpendicular), so the parallel term vanishes.
Why this step? When v ⊥ n ^ the formula collapses to just v cos θ + ( n ^ × v ) sin θ — a clean planar rotation.
Step 2 — Cross product. n ^ × v = ( 0 , 1 , 0 ) × ( 2 , 0 , 0 ) = ( 0 ⋅ 0 − 0 ⋅ 0 , 0 ⋅ 2 − 0 ⋅ 0 , 0 ⋅ 0 − 1 ⋅ 2 ) = ( 0 , 0 , − 2 ) .
Why? This vector points where the tip moves toward — here − z , the "down" direction of the tip.
Step 3 — Assemble. cos 12 0 ∘ = − 2 1 , sin 12 0 ∘ = 2 3 :
v ′ = ( 2 , 0 , 0 ) ( − 2 1 ) + ( 0 , 0 , − 2 ) 2 3 = ( − 1 , 0 , − 3 ) ≈ ( − 1 , 0 , − 1.732 ) .
Why this step? The two surviving terms are orthogonal directions — the shrunk original (cos θ along + x ) plus the swing (sin θ along the cross-product direction − z ). They simply add as independent components, one landing in x and one in z , with no overlap to reconcile.
Verify: length 1 + 0 + 3 = 2 ✓ (matches ∥ v ∥ = 2 ). Both a − x and a − z component, matching the forecast.
v = ( 0 , 0 , 3 ) by θ = 9 0 ∘ about the z -axis.
Forecast: v points along the very axis we spin about. Can a spinning-top's axle move by its own spin? Guess the output.
Step 1 — Check parallelism. n ^ = ( 0 , 0 , 1 ) , v = ( 0 , 0 , 3 ) = 3 n ^ , so v ∥ n ^ .
Why this step? The Rodrigues formula splits v into parts along and across n ^ ; only the across-part rotates.
Step 2 — Kill the moving terms. n ^ × v = 0 (parallel vectors), and n ^ ( n ^ ⋅ v ) ( 1 − cos θ ) = n ^ ( 3 ) ( 1 − 0 ) = ( 0 , 0 , 3 ) , while v cos θ = ( 0 , 0 , 3 ) ( 0 ) = 0 .
Why? The ( 1 − cos θ ) term exactly restores the parallel component that cos θ shrank — leaving it untouched.
Step 3 — Sum. v ′ = ( 0 , 0 , 0 ) + ( 0 , 0 , 0 ) + ( 0 , 0 , 3 ) = ( 0 , 0 , 3 ) .
v ′ = v = ( 0 , 0 , 3 )
Verify: unchanged, as a rotation about z must leave a z -arrow fixed ✓. This is the degenerate cell — every rotation has such fixed directions (its axis).
v = ( 1 , 0 , 0 ) by θ = − 9 0 ∘ about the z -axis.
Forecast: a negative angle spins the opposite (clockwise) way. If + 9 0 ∘ sent + x → + y (Ex 1), what should − 9 0 ∘ give?
Step 1 — Half-angle carries the sign. 2 θ = − 4 5 ∘ , so q = ( cos ( − 4 5 ∘ ) , 0 , 0 , sin ( − 4 5 ∘ )) = ( 2 2 , 0 , 0 , − 2 2 ) .
Why this step? sin is odd: the sign of θ flows straight into the quaternion's vector part, flipping spin direction. Note this q equals Example 1's q − 1 — negating the angle is inverting the rotation.
Step 2 — Rodrigues with cos ( − 9 0 ∘ ) = 0 , sin ( − 9 0 ∘ ) = − 1 .
n ^ × v = ( 0 , 0 , 1 ) × ( 1 , 0 , 0 ) = ( 0 , 1 , 0 ) .
v ′ = ( 1 , 0 , 0 ) ( 0 ) + ( 0 , 1 , 0 ) ( − 1 ) + 0 = ( 0 , − 1 , 0 ) .
v ′ = ( 0 , − 1 , 0 )
Verify: points to − y , the mirror of Ex 1's + y ✓. Length 1 ✓. Negative angle = opposite quadrant, exactly as forecast.
Worked example (a) Rotate any
v = ( 2 , − 1 , 4 ) by θ = 0 about an arbitrary axis n ^ (any unit vector — say n ^ = ( 0 , 0 , 1 ) , but the answer will not depend on it). (b) Rotate the same v by θ = 36 0 ∘ about the z -axis, and inspect q .
Forecast: doing nothing, or a full spin, should both return v unchanged. But watch what the quaternion itself does at 36 0 ∘ .
Step 1 (a) — Zero rotation. With 2 θ = 0 : q = ( cos 0 , sin 0 n ^ ) = ( 1 , 0 ) , the identity quaternion — and crucially sin 0 = 0 erases the axis entirely , so it truly doesn't matter which n ^ we picked.
Why? q = 1 multiplies trivially: 1 ⋅ v ⋅ 1 = v . In Rodrigues, cos 0 = 1 , sin 0 = 0 , ( 1 − cos 0 ) = 0 , so every term that mentions n ^ carries a factor of 0 — the axis drops out and v ′ = v regardless of n ^ .
v ′ = ( 2 , − 1 , 4 ) ✓.
Step 2 (b) — Full turn. 2 θ = 18 0 ∘ : q = ( cos 18 0 ∘ , sin 18 0 ∘ n ^ ) = ( − 1 , 0 ) = − 1 .
Why this step? Half of 36 0 ∘ is 18 0 ∘ , and cos 18 0 ∘ = − 1 — the quaternion becomes − 1 , not + 1 , even though the physical rotation is the identity.
Step 3 — Sandwich with q = − 1 . ( − 1 ) v ( − 1 ) − 1 = ( − 1 ) v ( − 1 ) = v . The two minus signs cancel.
v ′ = ( 2 , − 1 , 4 )
Verify: unchanged ✓. This is the double cover : q = + 1 (no turn) and q = − 1 (full turn) are different 4-tuples but the same rotation. So q and − q always rotate identically — see SLERP — quaternion interpolation where this sign must be handled to avoid the "long way round." Relates to Euler angles & gimbal lock only in that quaternions dodge that pathology entirely.
v = ( 1 , 2 , 3 ) by θ = 18 0 ∘ about the tilted axis n ^ = 3 1 ( 1 , 1 , 1 ) .
Forecast: a 18 0 ∘ flip about n ^ reflects the perpendicular part and keeps the parallel part. So the answer should be "twice the shadow on n ^ , minus the original." Guess whether components stay positive.
Step 1 — Confirm n ^ is unit. ∥ n ^ ∥ 2 = 3 1 ( 1 + 1 + 1 ) = 1 ✓.
Why this step? Rodrigues and the quaternion recipe both assume n ^ has length 1 ; a non-unit axis would silently scale the vector.
Step 2 — The 18 0 ∘ simplification. cos 18 0 ∘ = − 1 , sin 18 0 ∘ = 0 . Rodrigues becomes
v ′ = − v + n ^ ( n ^ ⋅ v ) ( 1 − ( − 1 )) = − v + 2 n ^ ( n ^ ⋅ v ) .
Why? At 18 0 ∘ the cross term dies (sin = 0 ); what remains is the classic "reflect through the axis" formula 2 ( parallel ) − v .
Step 3 — Numbers. n ^ ⋅ v = 3 1 ( 1 + 2 + 3 ) = 3 6 = 2 3 . Then 2 n ^ ( n ^ ⋅ v ) = 2 ⋅ 3 1 ( 1 , 1 , 1 ) ⋅ 2 3 = 4 ( 1 , 1 , 1 ) = ( 4 , 4 , 4 ) .
v ′ = ( 4 , 4 , 4 ) − ( 1 , 2 , 3 ) = ( 3 , 2 , 1 ) .
Why this step? n ^ ⋅ v is the length of the shadow of v on the axis; multiplying n ^ by it rebuilds the parallel component, and doubling it (the 2 ) reflects the perpendicular part to the other side of the axis. Subtracting the original v then leaves exactly parallel-kept, perpendicular-flipped — which is what a 18 0 ∘ turn is . The two 3 factors cancelling to a clean integer is a hint we did it right.
v ′ = ( 3 , 2 , 1 )
Verify: length 9 + 4 + 1 = 14 = ∥ ( 1 , 2 , 3 ) ∥ ✓. Neat sanity check: a 18 0 ∘ turn about the "diagonal" ( 1 , 1 , 1 ) permutes/reflects coordinates — here ( 1 , 2 , 3 ) → ( 3 , 2 , 1 ) , the middle component fixed since it lies symmetric to the axis.
Intuition What the figure below shows
The yellow line is the tilted axis n ^ = 3 1 ( 1 , 1 , 1 ) . The blue arrow is the input v = ( 1 , 2 , 3 ) ; the green arrow is its shadow on the axis , v ∥ (the part a 18 0 ∘ turn keeps). The red arrow is the output v ′ = ( 3 , 2 , 1 ) . Notice the blue and red arrows are mirror images across the yellow axis line — that mirroring is precisely 2 v ∥ − v made visible.
v = ( 1 , 0 , 0 ) . First rotate + 9 0 ∘ about x (q 1 ), then + 9 0 ∘ about y (q 2 ). Then do it in the swapped order and confirm they differ.
Forecast: rotating + x about x does nothing, so the first order should just apply the y -rotation. But swap it and you'll get something else — proving non-commutativity. Guess both.
Step 1 — Build both quaternions. q 1 = ( cos 4 5 ∘ , sin 4 5 ∘ , 0 , 0 ) , q 2 = ( cos 4 5 ∘ , 0 , sin 4 5 ∘ , 0 ) , both with 2 2 .
Why this step? Each rotation is its own q with the half-angle; composition combines them.
Step 2 — Combined quaternion is q = q 2 q 1 (rightmost first).
Why? The sandwich nests: q 2 ( q 1 v q 1 − 1 ) q 2 − 1 = ( q 2 q 1 ) v ( q 2 q 1 ) − 1 , and q 1 (applied first) sits on the right.
Step 3 — Order 1 (x then y ). About x , v = ( 1 , 0 , 0 ) is on the axis → unchanged (Cell B). Then + 9 0 ∘ about y sends + x → − z (right-hand rule): v ′ = ( 0 , 0 , − 1 ) .
Why this step? The first rotation is a no-op here, so the whole result is just the second rotation's action on + x .
Step 4 — Order 2 (y then x ). First + 9 0 ∘ about y : + x → − z , giving ( 0 , 0 , − 1 ) . Then + 9 0 ∘ about x rotates that − z vector; about + x the mapping is + z → + y and − z → − y ... let us be careful: + 9 0 ∘ about x sends + y → + z and + z → − y , hence − z → + y . So ( 0 , 0 , − 1 ) → ( 0 , 1 , 0 ) .
Why this step? Now the y -rotation acts first (moving + x off the x -axis), so the x -rotation is no longer a no-op — it genuinely moves the intermediate vector.
Order 1: ( 0 , 0 , − 1 ) = Order 2: ( 0 , 1 , 0 )
Verify: both have length 1 ✓, but they differ ✓ — quaternion multiplication is non-commutative , just like Rotation matrices & orthogonality . This is the whole reason "apply rightmost first" must be stated. See Quaternion algebra & Hamilton product .
Worked example A spacecraft's star tracker reports a guide-star direction
v = ( 0 , 1 , 0 ) in the body frame . The attitude quaternion (body→inertial) is q = ( 2 2 , 0 , 0 , 2 2 ) — a 9 0 ∘ rotation about + z . Where does the star point in the inertial frame ?
Forecast: this q turns + 9 0 ∘ about z , so a body-+ y vector should swing toward − x in inertial space. Guess before computing.
Step 1 — Identify θ , n ^ from q . cos 2 θ = 2 2 ⇒ 2 θ = 4 5 ∘ ⇒ θ = 9 0 ∘ ; the vector part ( 0 , 0 , 2 2 ) points along + z , so n ^ = ( 0 , 0 , 1 ) .
Why this step? An attitude quaternion in Spacecraft attitude determination (GNC) is the rotation carrying body-frame vectors to inertial ones; reading it out tells us the geometry.
Step 2 — Cross product. n ^ ⋅ v = ( 0 , 0 , 1 ) ⋅ ( 0 , 1 , 0 ) = 0 (perpendicular), and n ^ × v = ( 0 , 0 , 1 ) × ( 0 , 1 , 0 ) = ( 0 ⋅ 0 − 1 ⋅ 1 , 1 ⋅ 0 − 0 ⋅ 0 , 0 ⋅ 1 − 0 ⋅ 0 ) = ( − 1 , 0 , 0 ) .
Why this step? Since v ⊥ n ^ , the parallel term drops and only the planar spin survives; the cross product gives the swing direction, here − x .
Step 3 — Apply Rodrigues. cos 9 0 ∘ = 0 , sin 9 0 ∘ = 1 :
v ′ = ( 0 , 1 , 0 ) ( 0 ) + ( − 1 , 0 , 0 ) ( 1 ) + 0 = ( − 1 , 0 , 0 ) .
Why this step? The original + y component is scaled to zero by cos 9 0 ∘ , and the full swing sin 9 0 ∘ = 1 lands the whole vector on the cross-product direction − x — a clean quarter-turn.
v ′ = ( − 1 , 0 , 0 )
Verify: unit length preserved ✓; the guide star sits along inertial − x , matching the forecast. Physically the tracker's fix feeds the attitude filter; the quaternion evolves in time via Angular velocity & quaternion kinematics $\dot q=\tfrac12 q\omega$ .
Worked example You are handed
q = ( 0.5 , 0.5 , 0.5 , 0.5 ) and told it is a unit quaternion. What rotation is it (axis and angle)? Then rotate v = ( 1 , 0 , 0 ) by it.
Forecast: the scalar 0.5 is small-ish, so the angle isn't tiny. Guess whether it's more or less than 9 0 ∘ .
Step 1 — Check unit norm. 0. 5 2 ⋅ 4 = 1 ✓. Safe to read off.
Why this step? The axis/angle read-out q = ( cos 2 θ , sin 2 θ n ^ ) only holds for unit q ; on an un-normalised q the vector part would not equal sin 2 θ n ^ and the axis you extract would be wrong.
Step 2 — Angle from the scalar. cos 2 θ = 0.5 ⇒ 2 θ = 6 0 ∘ ⇒ θ = 12 0 ∘ .
Why? The scalar part is cos 2 θ ; invert the cosine, then double.
Step 3 — Axis from the vector part. sin 2 θ = sin 6 0 ∘ = 2 3 ≈ 0.866 . Vector part ( 0.5 , 0.5 , 0.5 ) has length 2 3 ✓, so n ^ = 3 /2 ( 0.5 , 0.5 , 0.5 ) = 3 1 ( 1 , 1 , 1 ) .
Why? Divide the vector part by sin 2 θ to strip the magnitude and leave the unit axis.
Step 4 — Rotate v = ( 1 , 0 , 0 ) , θ = 12 0 ∘ about n ^ = 3 1 ( 1 , 1 , 1 ) . cos 12 0 ∘ = − 2 1 , sin 12 0 ∘ = 2 3 . n ^ ⋅ v = 3 1 , n ^ × v = 3 1 ( 1 , 1 , 1 ) × ( 1 , 0 , 0 ) = 3 1 ( 0 , 1 , − 1 ) .
v ′ = ( 1 , 0 , 0 ) ( − 2 1 ) + 3 1 ( 0 , 1 , − 1 ) 2 3 + 3 1 ( 1 , 1 , 1 ) ⋅ 3 1 ⋅ 2 3 .
Why this step? Three orthogonal contributions add: the shrunk original (cos θ ), the swing (sin θ along the cross product), and the restored parallel part (( 1 − cos θ ) along n ^ ). Term by term: ( − 2 1 , 0 , 0 ) + ( 0 , 2 1 , − 2 1 ) + 2 1 ( 1 , 1 , 1 ) = ( 0 , 1 , 0 ) .
θ = 12 0 ∘ , n ^ = 3 1 ( 1 , 1 , 1 ) , v ′ = ( 0 , 1 , 0 )
Verify: length 1 ✓; a 12 0 ∘ turn about the diagonal cyclically permutes axes x → y → z → x , so ( 1 , 0 , 0 ) → ( 0 , 1 , 0 ) ✓ — a beautiful independent check.
Worked example Rotate the zero vector
v = ( 0 , 0 , 0 ) by any rotation, say θ = 13 7 ∘ about n ^ = 2 1 ( 1 , 1 , 0 ) .
Forecast: the zero vector is a point at the origin — it has no direction to turn. What could rotation possibly do to it? Guess before reading.
Step 1 — Feed it into Rodrigues. Every term carries a factor of v : v cos θ , ( n ^ × v ) sin θ , and n ^ ( n ^ ⋅ v ) ( 1 − cos θ ) .
Why this step? We do NOT need actual numbers for θ or n ^ — the structure alone decides the answer, because the formula is linear in v .
Step 2 — Each term vanishes. 0 cos θ = 0 ; n ^ × 0 = 0 ; n ^ ⋅ 0 = 0 so the last term is n ^ ⋅ 0 ⋅ ( 1 − cos θ ) = 0 .
Why? A cross or dot product with the zero vector is zero, and zero scaled by anything stays zero. There is no length to preserve and no direction to move.
v ′ = ( 0 , 0 , 0 )
Verify: in quaternion form v = ( 0 , 0 ) = 0 , and q ⋅ 0 ⋅ q − 1 = 0 for any q — the zero quaternion is fixed by every rotation. No division-by-length ever happens (that danger lives in normalising an axis , not in rotating a vector), so this degenerate input is perfectly safe. ✓
Mnemonic Scenario reflexes
On the axis? → frozen (Cell B). Angle 0 or 36 0 ∘ ? → identity (D/E). Zero vector? → stays zero (J).
Negative angle = opposite spin = the inverse quaternion (C).
18 0 ∘ = reflect : 2 n ^ ( n ^ ⋅ v ) − v (F).
Two rotations = q 2 q 1 , rightmost first , order matters (G).
Read a q : θ = 2 arccos w , axis = v / sin 2 θ (I).
Recall Quick self-test
A + 9 0 ∘ turn about + z sends + x to? ::: + y
A vector along the rotation axis becomes? ::: itself (unchanged)
q and − q rotate a vector? ::: identically (double cover)
To compose "rotate by q 1 then q 2 ", the single quaternion is? ::: q 2 q 1
Given q = ( 0.5 , 0.5 , 0.5 , 0.5 ) , the rotation angle is? ::: 12 0 ∘
Rotating the zero vector by any q gives? ::: the zero vector