Skip to main content

Rotate unit cube 90° about axis AB

Short answer

Translate by (-2,-1,0), align axis to z via Rx(α) and Ry(β) with unit vector (0.408,0.816,0.408), rotate 90° about z, then reverse. New corners: (1.74,-1.15,0.56), (2.73,-1.22,0.72), (1.67,-0.48,1.30), (2.65,-0.56,1.47), (1.91,-0.41,-0.09), (2.89,-0.48,0.08), (1.83,0.26,0.65), (2.82,0.18,0.82).

Find the new coordinates of a unit cube 90° rotated about an axis defined by its endpoints A(2,1,0) and B(3,3,1).

Assumption: the unit cube has corners from (0,0,0) to (1,1,1). The rotation is 90° counter-clockwise when looking from B towards A.

Step 1: axis data

AB = B − A = (1, 2, 1), L = √6 = 2.4495

Unit vector (a, b, c) = (0.4082, 0.8165, 0.4082), d = √(b² + c²) = √(5/6) = 0.9129

cosα = c/d = 0.4472, sinα = b/d = 0.8944; cosβ = d = 0.9129, sinβ = a = 0.4082

Step 2: matrices

T(-A) = translate by (-2,-1, 0)

Rx(α) = | 1  0       0      0 |
        | 0  0.4472 -0.8944 0 |
        | 0  0.8944  0.4472 0 |
        | 0  0       0      1 |

Ry(β) = | 0.9129 0 -0.4082 0 |
        | 0      1  0      0 |
        | 0.4082 0  0.9129 0 |
        | 0      0  0      1 |

Rz(90°) = | 0 -1 0 0 |
          | 1  0 0 0 |
          | 0  0 1 0 |
          | 0  0 0 1 |

Step 3: composite M = T(A)·Rx(−α)·Ry(−β)·Rz(90°)·Ry(β)·Rx(α)·T(−A)

M = |  0.1667 -0.0749  0.9832  1.7416 |
    |  0.7416  0.6667 -0.0749 -1.1498 |
    | -0.6498  0.7416  0.1667  0.5581 |
    |  0       0       0       1      |

Step 4: new corners (P' = M·P)

OriginalNew
(0,0,0)(1.742, −1.150, 0.558)
(0,0,1)(2.725, −1.225, 0.725)
(0,1,0)(1.667, −0.483, 1.300)
(0,1,1)(2.650, −0.558, 1.466)
(1,0,0)(1.908, −0.408, −0.092)
(1,0,1)(2.891, −0.483, 0.075)
(1,1,0)(1.833, 0.258, 0.650)
(1,1,1)(2.816, 0.184, 0.816)

Check: the rotation keeps every edge length equal to 1 and every point of the line AB fixed.

Answer: the eight transformed corners are listed in the table above.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computer Graphics chapter 4 questions →