Двумерные однородные координаты точки имеют следующий вид:
Здесь W - произвольный множитель не равный 0.
Двумерные декартовые координаты (x, y) точки получаются из однородных, делением последних на множитель W:
Однородные координаты можно представить как промасштабированные с коэффициентом W значения двумерных координат, расположенные в плоскости с Z = W.
В силу произвольности значения W в однородных координатах не существует единственного представления точки, заданной в декартовых координатах.
Начнем с простого переноса. Пусть точка переносится в точку , где
Эти уравнения можно переписать в виде:
Такую запись принято называть записью в системе "однородных координат".
Запись каждого преобразования в форме произведения матриц позволяет совмещать несколько преобразований в одном. Чтобы показать такое совмещение преобразований, объединим поворот с двумя переносами. Поворот на угол φ вокруг начала координат О был описан ранее. Заменим это уравнение следующим:
Теперь выведем новую версию уравнений для описания поворота на угол φ вокруг точки ; это уравнение может быть выражено формулой:
,
где через R обозначена матрица размером 3x3. Для нахождения этой матрицы R будем считать, что преобразование состоит из трех шагов с промежуточными точками и .
Преобразование для переноса точки О начала координат в точку :
где
Поворот на угол φ относительно точки О начала координат:
где
Возвращение точки О начала координат на прежнее место:
,
где
Возможность комбинации этих шагов основана на свойстве ассоциативности матричного умножения, то есть (АВ)С = А (ВС) для любых трех матриц А, В и С, имеющих размерности, допускающие такое умножение. Для любой части этого уравнения мы можем просто записать ABC. Теперь найдем:
где
Это и будет искомая матрица, которая после выполнения двух матричных умножений дает:
,
где введены обозначения:
Подобным образом можно записать любую последовательность геометрических преобразований на плоскости. Для этого нужно определить, какие преобразования переноса, поворота и масштабирования относительно начала координат необходимо выполнить. Затем сформировать матрицы для каждого из этих преобразований, и перемножить их в той последовательности, в какой выполняются преобразования. Полученная в результате матрица и будет матрицей заданного сложного преобразования.