Обзор теории. Точка представляется на плоскости двумя своими координатами, которые определяются как элементы матрицы размером 1х2 [х у]
Точка представляется на плоскости двумя своими координатами, которые определяются как элементы матрицы размером 1х2 [х у]. В трехмерном пространстве используется матрица размером 1х3 [x у z]. Иначе говоря, точка может задаваться в виде вектор-столбца[x,y] в двумерном пространстве или в виде столбца [x,y,z]в трехмерном. Строку [х у] или столбец часто называют координатным вектором. Для формирования такого вектора используется матрица-строка, т. е. множество точек, каждая из которых определяет координатный вектор в некоторой системе измерения. Данное множество хранится в компьютере и виде матрицы или массива чисел. Положением точек можно управлять путем манипулирования соответствующей матрицей. Линии, соединяющие точки, формируют отрезки, кривые и картинки. В качестве элементов матрицы могут фигурировать различные величины: числа, сетки или коэффициенты системы уравнений. Правила в матричной алгебре определяют допустимые операции над элементами. Многие физические задачи удобно выражаются в матричном представлении. Для моделей физических систем задача обычно ставится следующим образом: даны матрицы [А] и [В], найти результирующую матрицу [Т], такую, что [А][Т] = [В]. В этом случае решением является матрица [Т] = [А]-1[В], где [А]-1 - матрица, обратная к квадратной матрице [А]. В то же время матрицу [Т] можно интерпретировать как геометрический оператор. В этом случае для выполнения геометрического преобразования точек, представленных векторами положений в матрице [А], используется умножение матриц. Предположим, что матрицы [А] и [T] известны. Требуется определить элементы матрицы [В]. Представление [T] как геометрического оператора является основой математических преобразований, используемых в машинной графике. Рассмотрим результаты умножения матрицы [х у], содержащей координаты точки Р, на матрицу общего преобразования размером 2х2:
[X][T] = [x y] a b c d [(ax + cy) (bx + dy)]
Данная запись означает, что исходные координаты точки х и у преобразуются в х* и y*, где где х* = ах + су, у* = bх + dy. Представляют интерес значения х*, у* - координаты результирующей, преобразованной точки Р. Рассмотрим некоторые специальные случаи.
При а = d = 1 и с = b = 0 преобразование сведется к единичной матрице [X][T] = [x y] 1 0 0 1 [x y] = [x* y*]
и координаты точки Р останутся неизменными. Как и следовало ожидать, в линейной алгебре умножение на единичную матрицу эквивалентно умножению на 1 в обычной алгебре. В случае d = 1, b = c = 0 [X][T] = [x y] а 0 0 1 [аx y] = [x* y*]
где х* = ах - результат масштабирования координаты х. Эффект такого преобразования показан на рисунке Рассмотрим теперь еще случай b = с = 0, т.е.
[X][T] = [x y] а 0 0 d [аx yd] = [x* y*]
Данное преобразование вызывает изменение обеих координат х и у вектора Р (рис. 1.1,b). Если а <> d, то координаты масштабируются различным образом. При a = d > 1 происходит растяжение вектора Р или масштабирование координат. Если 0 < а = d < 1, то имеет место сжатие. Если значение а или d отрицательное, то вектор отражается относительно координатных осей или относительно плоскости. Чтобы убедиться в этом, возьмем b = c = 0, d = 1 и а = 1, тогда
[X][T] = [x y] -1 0 0 1 [-x y] = [x* y*]
и в результате получаем симметричное отражение относительно оси y (рис. 1.1,c). Если b = c = 0, а = 1, d = -1, то выполняется симметричное отражение относительно оси х. Если b = с = 0, а = d < 0, то происходит отражение относительно начала координат, это показано на рисунке 1.1,d, где a = -1, d =1. Заметим, что обе операции отражения и масштабирование зависят только от диагональных членов матрицы преобразования. Рассмотрим теперь случай с недиагональными членами. Возьмем сначала значения a = d = 1, c = 0, тогда
[X][T] = [x y] 1 b 0 1 [x (bx + y)] = [x* y*]
Заметим, что координата х точки Р осталась неизменной, тогда как координата y линейно зависит от исходных координат. Данное преобразование называется сдвигом (рис. 1.1,e). Аналогично, в случае, когда а = d = 1, b = 0, преобразование приведет к сдвигу пропорционально координате y (рис. 1.1,f). Таким образом, видно, что недиагональные члены матрицы преобразования создают эффект сдвига координат вектора точки Р. Прежде чем закончить с преобразованием точек, разберем действие общего преобразования, когда начальный вектор лежит в точке начала координат, т.е. [X][T] = [x y] a b c d [(ax + cy) (bx + dy)] или в случае начала координат, [X][T] = [0 0] a b c d [0 0] = [x* y*] Видно, что начало координат инвариантно относительно преобразования общего вида. Это ограничение устраняется при использовании однородных координат.
|