Skip to main content

Transform

type Transform = [
[number, number, number],
[number, number, number]
]

A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew.

The identity transform is [[1, 0, 0], [0, 1, 0]].

A translation matrix will typically look like:

Translation matrix
[[1, 0, tx],
[0, 1, ty]]

and a rotation matrix will typically look like:

Rotation matrix
[[cos(angle), sin(angle), 0],
[-sin(angle), cos(angle), 0]]

Another way to think about this transform is as three vectors:

  • The x axis (t[0][0], t[1][0])
  • The y axis (t[0][1], t[1][1])
  • The translation offset (t[0][2], t[1][2])