| Scenario | Inputs | Expected matrix (rounded) |
|---|---|---|
| 2D quarter‑turn | θ = 90° | [[0, -1], [1, 0]] |
| 3D about Z axis | Axis (0,0,1), θ = 90° | [[0, -1, 0], [1, 0, 0], [0, 0, 1]] |
| Euler ZYX sample | Order ZYX, (30°, 20°, 10°) | det ≈ 1, RᵀR ≈ I (numeric) |
This calculator supports three common rotation parameterizations:
- Select a mode: 2D, axis–angle, or Euler angles.
- Choose degrees or radians for all angles.
- Enter θ, or enter Euler angles α,β,γ and an order.
- For axis–angle, enter an axis and enable normalization.
- Optionally enter a point to rotate with the matrix.
- Press Compute to view the matrix above the form.
- Use Download CSV or Download PDF to export results.
1) What is a rotation matrix?
A rotation matrix is an orthogonal matrix that rotates vectors without changing lengths. In 2D it is 2×2, and in 3D it is 3×3. Ideal rotations satisfy RᵀR = I and det(R) = 1.
2) Why should I normalize the axis vector?
Rodrigues’ formula assumes a unit axis. Normalizing prevents unwanted scaling and improves numeric stability. If your axis is already unit length, normalization changes nothing except small rounding differences.
3) Degrees or radians—does it matter?
It matters only for how angles are interpreted. Trigonometric functions use radians internally, so the calculator converts degrees to radians when needed. Keep your units consistent across all inputs.
4) What does the orthogonality error mean?
It measures how close RᵀR is to the identity matrix using a Frobenius norm. Values near zero indicate a proper rotation. Larger values usually come from rounding, extreme inputs, or a non‑unit axis without normalization.
5) Why do Euler orders change the result?
Rotations do not generally commute, so changing the multiplication order changes the final orientation. For example, ZYX typically means rotate about Z, then Y, then X, producing a different result than XYZ.
6) Can I rotate a point with the matrix?
Yes. Enable “Apply rotation to a point” and enter coordinates. The calculator multiplies the matrix by the point as a column vector. For 2D results, the z value is ignored.
7) Why does the determinant differ slightly from 1?
Small deviations usually come from floating‑point rounding. Increasing displayed decimals shows more detail, but internal calculations already use double precision. Normalizing the axis and avoiding extreme angles can reduce visible drift.
8) What does “snap tiny values to zero” do?
It replaces very small magnitudes, like 6e‑17, with 0 using ε. This makes matrices easier to read for angles such as 90° where values should be exact. It does not change the underlying math meaningfully.