Translation
T = [[1, 0, tx], [0, 1, ty], [0, 0, 1]]
Adds tx to x and ty to y.
Calculate to compose the operations from top to bottom.
| Point | x | y | x′ | y′ |
|---|---|---|---|---|
| No calculated points yet. | ||||
For column vectors, each new operation multiplies on the left. If operation 1 happens first, the total is M = Mₙ ··· M₂ M₁.
The calculator uses active transformations on a standard Cartesian plane where positive y points upward. Each point is represented as the homogeneous column vector [x, y, 1]ᵀ.
T = [[1, 0, tx], [0, 1, ty], [0, 0, 1]]
Adds tx to x and ty to y.
R = [[cosθ, −sinθ, 0], [sinθ, cosθ, 0], [0, 0, 1]]
Positive angles rotate counter-clockwise. A custom center uses T(c)R T(−c).
S = [[sx, 0, 0], [0, sy, 0], [0, 0, 1]]
Equal factors give uniform scale. A custom center uses T(c)S T(−c).
F = [[cos2α, sin2α], [sin2α, −cos2α]]
This is the 2×2 linear part for a line through the origin at angle α.
x,y, one point per line.For T(3,2) followed by a 90° rotation, M = R T. Point (1,0) first moves to (4,2), then rotates to (−2,4).
Reversing the same operations gives M = T R. Point (1,0) rotates to (0,1), then moves to (3,3).
Scaling by 2 about (1,1) keeps that center fixed. Point (3,2) has offset (2,1), which doubles to (4,2), giving (5,3).
With column vectors, the rightmost matrix acts first. The interface avoids ambiguity by listing operations in actual application order.
Many graphics systems increase y downward, which can make positive rotation look clockwise. This tool uses mathematical y-up coordinates.
A scale about the origin moves every non-origin point. Enter a custom center when a particular point must remain fixed.
A 2×2 matrix can rotate, scale, shear, or reflect, but it cannot represent translation by itself. Homogeneous coordinate 1 lets translation fit into the third column of a 3×3 matrix.
Yes. Translation, rotation, scale, and reflection generally do not commute. Moving a shape and then rotating it typically differs from rotating it and then moving it.
Enter a negative angle. Under the tool’s y-up convention, positive angles are counter-clockwise and negative angles are clockwise.
The linear part reverses orientation, as a single reflection does. A positive determinant preserves orientation. A zero determinant collapses the plane and makes the transform non-invertible.
Yes. Choose an angled line, enter a point on the line, and enter its direction angle. Horizontal and vertical offset lines also have dedicated choices.
Very large or very small non-zero results use scientific notation so their scale remains visible without an excessively wide result table.
Yes. The calculator script processes the operation sequence and coordinates locally and does not transmit or store the entered values.
Last reviewed: July 30, 2026 by the Starlight Tools editorial team.
The implementation uses standard homogeneous affine-matrix multiplication. Inputs and intermediate results must be finite and no larger than 10¹⁰⁰ in magnitude. JavaScript uses IEEE 754 double-precision arithmetic, so results near numerical limits may lose precision.