logo
Инж

4.1.1.1. Изображение и преобразование точек

Точка представляется на плоскости двумя своими координатами, которые определяются как элементы матрицы размером 12 [х у]. В трехмерном пространстве используется матрица размером 13 [х у  z].

Иначе говоря, точка может задаваться в виде вектора – столбца в двумерном пространстве или в виде – в трехмерном. Строку [х у] или столбец часто называют координатным вектором. Для формирования такого вектора используется матрица – строка, т. е. множество точек, каждая из которых определяет координатный вектор в некоторой системе измерений. Данное множество хранится в компьютере в виде матрицы или массива чисел. Положением точек можно управлять путем манипулирования соответствующей матрицей. Линии, соединяющие точки, формируют отрезки, кривые и картинки.

Рассмотрим результаты умножения матрицы [х у], содержащей координаты точки Р, на матрицу общего преобразования размером 22:

(4.1)

Данная запись означает, что исходные координаты точки х и у преобразуются в х* у* , где x*=ax + cy, y*=bx + by. Представляют интерес значения х*, у* – координаты результирующей, преобразованной точки Р.

Рассмотрим некоторые специальные случаи.

При a=d=1 и c=b=0 преобразование сведется к единичной матрице

(4.2)

и координаты точки Р останутся неизвестными. Как и следовало ожидать, в линейной алгебре умножение на единичную матрицу эквивалентно умножению на 1 в обычной алгебре.

В случае d = 1, b=c=0

(4.3)

где х* = ах – результат масштабирования координаты Х. Эффект такого преобразования показан на рис 4.1, а. Рассмотрим теперь еще случай b=c=0, т. е.

(4.4)

Данное преобразование вызывает изменение обеих координат х и у вектора Р (рис. 4.1, б). Если а ≠ d, то координаты масштабируются различным образом. При a = b >1 происходит растяжение вектора Р или масштабирование координат. Если 0 < a = d < 1, то имеет место сжатие.

Если значение а или d отрицательное, то вектор отражается относительно координатных осей или относительно плоскости. Чтобы убедиться в этом, возьмем b = c = 0, d = 1 и a = –1, тогда

(4.5)

и в результате получаем симметричное отражение относительно оси у (рис. 4.1, в). Если b = c = 0, a = 1,d = –1, то выполняется симметричное отражение относительно оси х. Если b = c = 0, a = d < 0, то происходит отражение относительно начала координат, это показано на рис. 4.1, г, где a = –1, d = 1. Заметим, что обе операции отражения и масштабирования зависят только от диагональных членов матрицы преобразования.

Рис. 4.1

Рассмотрим теперь случай с недиагональными членами. Возьмем сначала значения a=d=1, c=0, тогда

(4.6)

Заметим, что координата х точки Р осталась неизменной, тогда как координата у* линейно зависит от исходных координат. Данное преобразование называется сдвигом (рис. 4.1, д). Аналогично, в случае, когда a = d = 1, b = 0, преобразование приведет к сдвигу пропорционально координате у (рис. 4.1, е). Таким образом, видно, что недиагональные члены матрицы преобразования создают эффект сдвига координат вектора точки Р.

Прежде чем закончить с преобразованием точек, разберем действие общего преобразования, заданного выражением (рис. 4.1), когда начальный вектор лежит в точке начала координат, т. е.

.

Или, в случае начала координат,

.

Видно, что начало координат инвариантно относительно преобразования общего вида. Это ограничение устраняется при использовании однородных координат.