Intuition What this page is for
The parent note showed you the machine : the rotation matrix R B I , its properties, and three quick examples. This page runs that machine through every scenario it can be asked in an exam or in flight software — every sign, every quadrant of angle, the degenerate cases (zero rotation, rotation about the axis a vector already lies on), the limiting cases (18 0 ∘ , tiny angles), a real-world word problem, and a nasty exam twist where the frame direction is deliberately reversed.
Throughout, GNC means Guidance, Navigation & Control — the onboard software that figures out where a vehicle points and how to steer it.
Before we start, one reminder of notation so nobody is lost:
v is a physical arrow. v I = its three numbers (components) as seen in the inertial frame ; v B = the same arrow's numbers as seen in the body frame .
A hat on a letter, like s ^ , means a unit vector — an arrow of length exactly 1 , used purely to point in a direction.
R B I = the "body-from-inertial" table that turns v I into v B : v B = R B I v I .
R T = transpose (flip rows into columns). For a rotation matrix this is also its inverse.
ECI = Earth-Centered Inertial — a non-spinning frame with origin at Earth's center and axes locked to the distant stars; this is a concrete inertial frame I . ECEF = Earth-Centered, Earth-Fixed — same origin but the axes rotate with the Earth (so a point on the ground keeps fixed ECEF coordinates). We only name these here; they are built fully in ECI, ECEF and orbit reference frames .
Every question this topic can throw is one (or a mix) of these cells . The 9 worked examples below are each tagged with the cell they cover, and together they touch every row.
Cell
What makes it tricky
Covered by
A. Positive angle, one axis
get the sign of sin right
Ex 1
B. Negative angle
is − θ the same as transpose?
Ex 2
C. Angle in quadrant II (9 0 ∘ < θ < 18 0 ∘ )
cos goes negative
Ex 3
D. Degenerate: zero rotation
matrix must be identity
Ex 4
E. Degenerate: vector on the rotation axis
nothing should change
Ex 4
F. Limiting case: θ = 18 0 ∘
full flip, both ± signs vanish
Ex 5
G. Reverse direction (inverse / transpose)
body→inertial instead of inertial→body
Ex 6
H. Composition of two rotations
order matters, subscripts must cancel
Ex 7
I. Real-world word problem
translate English → axes → matrix
Ex 9
J. Exam twist: wrong-way subscripts
spotting a transpose trap
Ex 9
K. Sanity via orthogonality
check R T R = I
Ex 5 & 6
L. Angle in quadrant III (18 0 ∘ < θ < 27 0 ∘ )
both sin and cos negative
Ex 8
We use the parent's z -rotation as our workhorse (it is the "frame-to-frame" convention, so inertial components come in and body components come out ):
R z ( θ ) = cos θ − sin θ 0 sin θ cos θ 0 0 0 1
Read every entry as "how much of one axis leaks into another". The z -row/column is untouched because we are spinning around z .
Worked example Example 1 — Positive angle, one axis (Cell A)
The body is turned + 9 0 ∘ about z . An inertial vector points along inertial Y : v I = ( 0 , 1 , 0 ) . Find v B .
Forecast: guess before computing — the body spun + 9 0 ∘ (counter-clockwise), so the inertial Y arrow should now appear along the body's + x . Guess ( 1 , 0 , 0 ) ?
Write the matrix at θ = 9 0 ∘ : cos 9 0 ∘ = 0 , sin 9 0 ∘ = 1 .
R z ( 9 0 ∘ ) = 0 − 1 0 1 0 0 0 0 1
Why this step? We must turn the symbol θ into numbers before multiplying — the matrix is useless with unknowns inside for a numeric answer.
Multiply row-by-row with ( 0 , 1 , 0 ) :
v B = 0 ⋅ 0 + 1 ⋅ 1 + 0 − 1 ⋅ 0 + 0 ⋅ 1 + 0 0 = 1 0 0
Why this step? Each output number is a dot product of one matrix row (a body axis in inertial coords) with v I — that is literally "project the arrow onto that body axis".
Verify: length preserved: ∥ ( 0 , 1 , 0 ) ∥ = 1 = ∥ ( 1 , 0 , 0 ) ∥ ✔. And the answer matches our forecast ( 1 , 0 , 0 ) . ✔
What to see in the figure: the two blue arrows are the inertial X , Y axes; the two pink arrows are the body axes after the + 9 0 ∘ turn. The yellow arrow is our vector v , lying along inertial Y . Notice it lands exactly along the pink body-x axis — which is why its body components read ( 1 , 0 , 0 ) .
Worked example Example 2 — Negative angle vs transpose (Cell B)
Same vector v I = ( 0 , 1 , 0 ) , but now the body is turned − 3 0 ∘ about z . Find v B , and confirm R z ( − 3 0 ∘ ) = R z ( 3 0 ∘ ) T .
Forecast: a clockwise turn — the inertial Y arrow should tilt toward body + x a little , so expect a small positive x -component and a positive-ish y -component.
Use cos ( − 3 0 ∘ ) = cos 3 0 ∘ = 2 3 ≈ 0.8660 and sin ( − 3 0 ∘ ) = − sin 3 0 ∘ = − 0.5 .
R z ( − 3 0 ∘ ) = 0.8660 0.5 0 − 0.5 0.8660 0 0 0 1
Why this step? cos is even (ignores the sign of the angle) but sin is odd (flips sign). This single fact is exactly why R z ( − θ ) equals R z ( θ ) T — negating θ only flips the two sin entries, which is what transposing does here.
Multiply: v B = ( 0.8660 ⋅ 0 − 0.5 ⋅ 1 , 0.5 ⋅ 0 + 0.8660 ⋅ 1 , 0 ) = ( − 0.5 , 0.8660 , 0 ) .
Why this step? Straight row-times-vector; we keep 4 decimals so the length check is honest.
Verify: ( − 0.5 ) 2 + 0.866 0 2 = 0.25 + 0.75 = 1 ✔. Transpose the parent's R z ( 3 0 ∘ ) = 0.8660 − 0.5 0 0.5 0.8660 0 0 0 1 → its transpose is exactly the matrix in step 1 ✔. So "turn the other way" = "transpose" .
Worked example Example 3 — Angle in quadrant II,
cos goes negative (Cell C)
The body is turned + 13 5 ∘ about z . Take v I = ( 1 , 0 , 0 ) . Find v B .
Forecast: 13 5 ∘ is more than a quarter turn but less than a half turn. The inertial X arrow should end up pointing "down-and-left" in body view — expect a negative x B and a negative y B .
Quadrant-II values: cos 13 5 ∘ = − 2 2 ≈ − 0.7071 , sin 13 5 ∘ = + 2 2 ≈ 0.7071 .
Why this step? This is the crux of the cell: past 9 0 ∘ , cos turns negative while sin is still positive. Students who memorise only first-quadrant values get the wrong sign here.
First body component: v x B = cos 13 5 ∘ ⋅ 1 + sin 13 5 ∘ ⋅ 0 = − 0.7071 .
Second: v y B = − sin 13 5 ∘ ⋅ 1 + cos 13 5 ∘ ⋅ 0 = − 0.7071 .
Why this step? We read off only the first column of R z because the input ( 1 , 0 , 0 ) has just an x -part — that first column is where inertial X lands in body coords. The top row carries + sin while the middle row carries − sin ; that built-in sign difference is what makes the rotation "wrap around" correctly through every quadrant, and here it delivers two negative components.
Verify: length 0.707 1 2 + 0.707 1 2 = 1 ✔; both components negative, matching the forecast (down-and-left) ✔.
What to see in the figure: the yellow arrow is v along inertial X ; the chalk arc marks the 13 5 ∘ body turn; the pink body axes have swung past the vertical. The yellow annotation shows v 's body components landing in the lower-left corner — both negative, exactly as computed.
Worked example Example 4 — Two degenerate cases at once (Cells D & E)
(a) Body has not rotated (θ = 0 ): what is R z ( 0 ) and what does it do to any v ?
(b) Body rotates + 5 0 ∘ about z , but the vector lies on the axis: v I = ( 0 , 0 , 7 ) . Find v B .
Forecast: (a) "no turn" should change nothing → the identity matrix. (b) the arrow lies exactly along the spin axis, so spinning around it moves nothing → ( 0 , 0 , 7 ) unchanged.
(a) cos 0 = 1 , sin 0 = 0 , so
R z ( 0 ) = 1 0 0 0 1 0 0 0 1 = I .
Why this step? A rotation of zero must be the do-nothing operation; any other result would mean the two frames disagree even when perfectly aligned — impossible.
(b) Multiply R z ( 5 0 ∘ ) by ( 0 , 0 , 7 ) . The whole third column of R z is ( 0 , 0 , 1 ) , so:
v B = ( 0 , 0 , 1 ⋅ 7 ) = ( 0 , 0 , 7 ) .
Why this step? A z -rotation leaves the z -component untouched (bottom row is ( 0 , 0 , 1 ) ). A vector purely along the axis is the one arrow that any amount of spin about that axis cannot move — the degenerate/fixed case.
Verify: (a) I v = v for every v ✔. (b) length 7 in, length 7 out; the answer is independent of 5 0 ∘ — plug in any angle and the z -part stays 7 ✔.
Worked example Example 5 — Limiting case
θ = 18 0 ∘ and the orthogonality check (Cells F & K)
Body turned + 18 0 ∘ about z . Take v I = ( 3 , 4 , 0 ) . Find v B and verify R T R = I .
Forecast: a half turn flips left↔right and front↔back but keeps up/down. Expect ( 3 , 4 , 0 ) → ( − 3 , − 4 , 0 ) .
At 18 0 ∘ : cos 18 0 ∘ = − 1 , sin 18 0 ∘ = 0 .
R z ( 18 0 ∘ ) = − 1 0 0 0 − 1 0 0 0 1
Why this step? At the limit both sin entries vanish, so there is no cross-mixing of x and y — the matrix just negates them. This is the clean boundary between quadrant II and quadrant III.
Multiply: v B = ( − 1 ⋅ 3 , − 1 ⋅ 4 , 0 ) = ( − 3 , − 4 , 0 ) .
Why this step? Row-times-vector is the actual definition of applying the matrix; we carry it out to confirm the geometric forecast (a clean sign-flip of x and y ) with numbers rather than just intuition.
Orthogonality check: since R is a matrix whose only non-zero entries sit on the main diagonal (top-left to bottom-right), here − 1 , − 1 , 1 , we have R T = R , and R T R has entries ( − 1 ) 2 , ( − 1 ) 2 , 1 2 = 1 , 1 , 1 on that diagonal — i.e. R T R = I .
Why this step? Every valid rotation matrix must satisfy R T R = I ; if it did not, lengths would change. This is the cheapest correctness test in all of GNC (Guidance, Navigation & Control).
Verify: ∥ ( 3 , 4 , 0 ) ∥ = 5 and ∥ ( − 3 , − 4 , 0 ) ∥ = 5 ✔; determinant = ( − 1 ) ( − 1 ) ( 1 ) = + 1 (proper rotation, no mirror) ✔.
Worked example Example 6 — Reverse the direction: body→inertial (Cells G & K)
A gyro-integrated attitude gives R B I = R z ( 6 0 ∘ ) . A sensor reads a vector in body coords, v B = ( 2 , 0 , 0 ) . What is it in inertial coords?
Forecast: we are going the "wrong way" (body→inertial), so we need the inverse . Because it is a rotation, inverse = transpose = R z ( − 6 0 ∘ ) . A body-x arrow, un-rotated by 6 0 ∘ , should swing to positive-X , positive-Y .
Invert by transposing (no Gaussian elimination):
v I = R B I T v B = R z ( 6 0 ∘ ) T 2 0 0 .
Why this step? The defining relation is v B = R B I v I ; to solve for v I we multiply both sides by R − 1 = R T . Doing a real inverse would be wasteful and less accurate onboard.
R z ( 6 0 ∘ ) T = 0.5 0.8660 0 − 0.8660 0.5 0 0 0 1 (swap the two sin signs). Multiply by ( 2 , 0 , 0 ) :
v I = ( 2 ⋅ 0.5 , 2 ⋅ 0.8660 , 0 ) = ( 1 , 1.7321 , 0 ) .
Why this step? Only the first column matters because v B has just an x -part; that first column of R T is the first row of R — i.e. "where does body-x live in inertial space".
Verify: length 1 2 + 1.732 1 2 = 1 + 3 = 2 ✔ (matches ∥ ( 2 , 0 , 0 ) ∥ ). The result makes a 6 0 ∘ angle with inertial X : tan − 1 ( 1.7321/1 ) = 6 0 ∘ ✔.
Worked example Example 7 — Composition, order matters (Cell H)
The vehicle uses an intermediate orbit frame O — a reference frame that tracks the satellite's position around its orbit (defined fully in ECI, ECEF and orbit reference frames ); all you need here is that it is a third frame sitting between inertial and body. Chain: inertial→orbit is R O I = R z ( 9 0 ∘ ) , orbit→body is R B O = R z ( 3 0 ∘ ) . Build R B I and apply it to v I = ( 1 , 0 , 0 ) .
Forecast: two same-axis turns just add : 9 0 ∘ + 3 0 ∘ = 12 0 ∘ total. So the answer should equal R z ( 12 0 ∘ ) ( 1 , 0 , 0 ) .
Compose with the parent's rule (adjacent subscripts cancel):
R B I = R B O R O I = R z ( 3 0 ∘ ) R z ( 9 0 ∘ ) = R z ( 12 0 ∘ ) .
Why this step? The rightmost matrix R O I acts on v I first (I → O ), then R B O acts (O → B ). The inner O 's touch and cancel, leaving B I . For rotations about the same axis, angles simply add — a fact we can exploit as a check.
Apply at 12 0 ∘ : cos 12 0 ∘ = − 0.5 , sin 12 0 ∘ = 0.8660 .
v B = ( cos 12 0 ∘ ⋅ 1 , − sin 12 0 ∘ ⋅ 1 , 0 ) = ( − 0.5 , − 0.8660 , 0 ) .
Why this step? With the total angle known, one multiply finishes the job; no need to apply two matrices separately.
Verify: length 0.25 + 0.75 = 1 ✔. Independently apply the matrices one at a time: R z ( 9 0 ∘ ) ( 1 , 0 , 0 ) = ( 0 , − 1 , 0 ) , then R z ( 3 0 ∘ ) ( 0 , − 1 , 0 ) = ( − 0.5 , − 0.8660 , 0 ) — same answer ✔, and it confirms order/composition worked.
Worked example Example 8 — Angle in quadrant III, both
sin and cos negative (Cell L)
The body is turned + 22 5 ∘ about z . Take v I = ( 1 , 0 , 0 ) . Find v B .
Forecast: 22 5 ∘ is past the half-turn (18 0 ∘ ) but short of three-quarters (27 0 ∘ ). Both cos and sin are negative here. The inertial X arrow, over-rotated past 18 0 ∘ , should point "up-and-left" in body view — expect negative x B and positive y B .
Quadrant-III values: cos 22 5 ∘ = − 2 2 ≈ − 0.7071 , sin 22 5 ∘ = − 2 2 ≈ − 0.7071 .
Why this step? This is the whole point of the cell: between 18 0 ∘ and 27 0 ∘ both trig functions are negative. Memorising only quadrants I–II leaves you helpless here.
First body component: v x B = cos 22 5 ∘ ⋅ 1 + sin 22 5 ∘ ⋅ 0 = − 0.7071 .
Second: v y B = − sin 22 5 ∘ ⋅ 1 + cos 22 5 ∘ ⋅ 0 = − ( − 0.7071 ) = + 0.7071 .
Why this step? We again use only the first column of R z (input is pure x ). The middle row carries − sin ; because sin 22 5 ∘ is itself negative, the two minus signs cancel and y B comes out positive — exactly the sign trap this cell is built to expose.
Verify: length 0.707 1 2 + 0.707 1 2 = 1 ✔; signs ( − , + ) match the forecast (up-and-left) ✔.
Worked example Example 9 — Word problem + the subscript trap (Cells I & J)
A satellite's star tracker reports a guide star at inertial (ECI) direction s ^ I = ( 1 , 0 , 0 ) (recall the hat means it is a unit-length pointing direction). Mission control says the vehicle is yawed + 4 0 ∘ about z relative to inertial, so R B I = R z ( 4 0 ∘ ) . A junior engineer computes the star's body direction as s ^ B = R B I T s ^ I . Is that right? Give the correct s ^ B .
Forecast: the defining rule is v B = R B I v I — no transpose . The junior engineer used a transpose, so they are computing the reverse direction. The correct answer should have the star swing to negative body-y (positive yaw pushes inertial X toward body − y ).
Spot the trap: subscripts of R B I read "body from inertial". The inner subscript I must touch the frame of the input s ^ I . In R B I s ^ I the I 's meet and cancel, leaving B . Using R T = R I B would need a body-frame input — wrong.
Why this step? The subscript-cancellation rule is a guardrail: it catches exactly this transpose mistake without any geometry.
Correct computation at 4 0 ∘ : cos 4 0 ∘ = 0.7660 , sin 4 0 ∘ = 0.6428 .
s ^ B = R z ( 4 0 ∘ ) 1 0 0 = ( cos 4 0 ∘ , − sin 4 0 ∘ , 0 ) = ( 0.7660 , − 0.6428 , 0 ) .
Why this step? We apply the real definition; the first column of R z ( 4 0 ∘ ) tells us where inertial X lands in body coords.
Show the engineer's error: R T ( 1 , 0 , 0 ) = ( cos 4 0 ∘ , + sin 4 0 ∘ , 0 ) = ( 0.7660 , + 0.6428 , 0 ) .
Why this step? Making the wrong answer explicit reveals the signature of a transpose slip — the y -component's sign flips while x stays the same. That single flipped sign is the tell-tale for this whole class of exam traps.
Verify: correct length 0.766 0 2 + 0.642 8 2 = 1 ✔; sign of y is negative as forecast for a + 4 0 ∘ yaw ✔; the engineer's version differs only by the sign of y , confirming it is the reverse rotation (a transpose) rather than the requested one ✔.
Every cell of the scenario matrix is now worked. The pattern underneath all nine examples is the same tiny machine, R z ( θ ) , read carefully:
Signs come from the quadrant of θ . cos flips negative past 9 0 ∘ (Ex 3); sin flips negative past 18 0 ∘ (Ex 8); at exactly 18 0 ∘ both sin entries vanish and you get a pure sign-flip (Ex 5). Never trust first-quadrant instincts alone.
"Turn the other way" = transpose (Ex 2), and transpose = inverse for any rotation (Ex 6) — because R T R = I . That is the cheapest, most accurate reversal onboard.
Degenerate cases anchor your sanity: zero rotation gives I (Ex 4a); a vector on the spin axis never moves (Ex 4b).
Compose by touching subscripts — inner labels kiss and cancel, and same-axis angles simply add (Ex 7).
The subscript notation is a guardrail against the single most common exam trap: sneaking in a transpose (Ex 9).
Recall Which cell is which?
Positive one-axis turn, sign of sin ::: Ex 1 (Cell A)
"Turn the other way" equals which operation? ::: transpose the matrix (Ex 2, Cell B)
What flips sign in quadrant II? ::: cos becomes negative (Ex 3, Cell C)
Rotation of 0 ∘ gives which matrix? ::: the identity I (Ex 4, Cell D)
A vector on the spin axis is changed how much? ::: not at all (Ex 4, Cell E)
At 18 0 ∘ the matrix does what to x , y ? ::: negates them, no cross-mixing (Ex 5, Cell F)
Cheapest inverse of a rotation matrix? ::: its transpose R T (Ex 6, Cell G)
Same-axis rotations compose by...? ::: adding their angles (Ex 7, Cell H)
In quadrant III, what are the signs of sin and cos ? ::: both negative (Ex 8, Cell L)
The subscript guardrail catches which error? ::: applying a transpose the wrong way (Ex 9, Cell J)
What do ECI and ECEF stand for? ::: Earth-Centered Inertial and Earth-Centered Earth-Fixed
Mnemonic Two-line survival kit
"cos is even, sin is odd" → that's why − θ = transpose.
"Inner subscripts kiss and cancel" → R B I v I is right; R B I T v I is a trap.
See also: Euler angles and gimbal lock · Quaternions for attitude representation · IMU and gyroscope sensing · Coriolis and fictitious forces in rotating frames · ECI, ECEF and orbit reference frames · Attitude determination — star trackers