1. Choose the task
Generate a matrix, rotate one point, rotate pasted points, or analyze a matrix. Point and center fields appear only when the selected task needs them.
x,y or x y. Up to 500 nonblank rows.
Convention: active rotations, column vectors, and a standard y-up Cartesian plane. Positive signed angles are counter-clockwise. On y-down screen coordinates, the same numbers can look reversed.
Enter a matrix [[a, b], [c, d]]. The check uses a tolerance of 10−6.
The numbered grid uses mathematical y-up coordinates. In “Rotate one point” mode, drag the original point or pivot to explore.
| Item | Original (x, y) | Rotated (x′, y′) |
|---|
Generate a matrix, rotate one point, rotate pasted points, or analyze a matrix. Point and center fields appear only when the selected task needs them.
Choose degrees or radians. Enter a positive value for counter-clockwise or a negative value for clockwise. Results update as inputs change.
Review the conversion, sine and cosine, matrix multiplication, coordinate substitution, final coordinates, determinant, and orthogonality check.
Export numeric or symbolic matrices, coordinates, CSV, JSON, JavaScript, Python, or LaTeX. Calculations stay in your browser.
For the column vector , an active rotation about the origin is . This page uses column vectors and y-up Cartesian coordinates. For row vectors, use .
For pivot , subtract, rotate, and add:
90° CCW: because the rule is .
45° clockwise: enter −45°. The matrix is .
Rotation matrices are used in analytic geometry, robotics, CAD, games, image transforms, navigation, computer graphics, and any workflow that must rotate coordinates without changing lengths or angles.
All rules below are active, counter-clockwise rotations using column vectors.
| Angle | cos θ | sin θ | Exact matrix R(θ) | Coordinate rule |
|---|---|---|---|---|
| 0° | 1 | 0 | [[1, 0], [0, 1]] | (x, y) → (x, y) |
| 30° | √3/2 | 1/2 | [[√3/2, −1/2], [1/2, √3/2]] | (x√3/2 − y/2, x/2 + y√3/2) |
| 45° | √2/2 | √2/2 | [[√2/2, −√2/2], [√2/2, √2/2]] | ((x−y)/√2, (x+y)/√2) |
| 60° | 1/2 | √3/2 | [[1/2, −√3/2], [√3/2, 1/2]] | (x/2 − y√3/2, x√3/2 + y/2) |
| 90° | 0 | 1 | [[0, −1], [1, 0]] | (x, y) → (−y, x) |
| 180° | −1 | 0 | [[−1, 0], [0, −1]] | (x, y) → (−x, −y) |
| 270° | 0 | −1 | [[0, 1], [−1, 0]] | (x, y) → (y, −x) |
| 360° | 1 | 0 | [[1, 0], [0, 1]] | (x, y) → (x, y) |
This calculator evaluates JavaScript’s IEEE 754 double-precision Math.sin, Math.cos, and Math.atan2 functions. It keeps full floating-point precision during calculation and rounds only displayed/exported values to the chosen 0–10 decimal places. Angles must be finite numbers; batch rotation accepts at most 500 nonblank rows.
Generated matrices are checked with det(R) and the maximum entry error in RᵀR − I. Matrix analysis accepts a proper rotation when both determinant and orthogonality are within 10−6. The formulas follow the standard trigonometric definitions summarized by the NIST Digital Library of Mathematical Functions and standard rotation-matrix conventions documented by Wolfram MathWorld.
With active rotations and column vectors on a standard y-up plane, positive angles rotate counter-clockwise. A clockwise rotation uses the negative angle, so R(−θ) is the transpose and inverse of R(θ).
Use whichever unit your problem gives. The calculator converts degrees to radians with θ radians = θ degrees × π/180 before evaluating sine and cosine.
For pivot c, subtract the pivot, rotate, and add it back: p′ = R(θ)(p − c) + c. The calculator also shows the equivalent 3×3 homogeneous matrix.
A proper rotation matrix is orthogonal, so RᵀR = I. Therefore R⁻¹ = Rᵀ = R(−θ).
An active rotation turns the point while keeping the coordinate axes fixed. A passive rotation changes the coordinate axes instead and uses the inverse matrix for the same stated angle. This calculator uses active rotations.
Yes. This calculator uses column vectors with p′ = Rp. If points are row vectors, multiply on the right by Rᵀ: p′ = pRᵀ.
Many screen coordinate systems increase y downward. The calculator uses the mathematical y-up Cartesian plane, so a positive angle is counter-clockwise; mapping it directly to y-down screen coordinates can reverse the apparent direction.
Enter one point per line as x,y or x y. Blank lines are ignored. Invalid lines are identified by line number, while valid rows remain available after the warning.
A 2D rotation uses one angle and a 2×2 matrix. A general 3D rotation uses a 3×3 matrix and needs an axis plus an angle, Euler angles, or another representation such as a quaternion.