Двумерные преобразования
2-1 ВВЕДЕНИЕ Изучение математического аппарата, лежащего в основе машинной графики, мы начнем с рассмотрения способов вывода и преобразования точек и линий. Эти способы наряду с соответствующими алгоритмами рисования используются для изображения объектов или визуализации графической информации. Возможность проводить преобразования точек и линий является фундаментом машинной графики. Нарисованный объект может быть представлен в нужном масштабе, повернут, перемещен, преобразован или модифицирован в соответствии с требованиями решаемой задачи. Все эти манипуляции с изображением можно выполнить, используя математический аппарат, изложенный в данной главе. 2-2 ИЗОБРАЖЕНИЕ ТОЧЕК Точка представляется на плоскости двумя своими координатами, которые определяются как элементы матрицы размером 1х2 [ х у ]. В трехмерном пространстве используется матрица размером 1х3 [ х у z ]. Иначе говоря, точка может задаваться в виде вектора-столбца 2-3 ПРЕОБРАЗОВАНИЯ И МАТРИЦЫ В качестве элементов матрицы могут фигурировать различные величины: числа, сетки или коэффициенты системы уравнений. Правила в матричной алгебре определяют допустимые операции над элементами. Многие физические задачи удобно выражаются в матричном представлении. Для моделей физических систем задача обычно ставится следующим образом: даны матрицы [ A ] и [ B ], найти результирующую матрицу [ Т ], такую, что [ А ][ Т ] = [ В ]. В этом случае решением является матрица [ T ] = [ A ]-1[ В ], где [ А ]-1—матрица, обратная к квадратной матрице [ А ]. В то же время матрицу [ Т ]можно интерпретировать как геометрический оператор. В этом случае длявыполнения геометрического преобразования точек, представленных векторами положений в матрице [ А ], используется умножение матриц. Предположим, что матрицы [ А ]и [ T ] известны. Требуется определить элементы матрицы [ В ]. Представление [ T ] как геометрического оператора является основой математических преобразований, используемых в машинной графике. 2-4 ПРЕОБРАЗОВАНИЕ ТОЧЕК Рассмотрим результаты умножения матрицы [ x y ], содержащей координаты точки Р, на матрицу общего преобразования размером 2x2:
Данная запись означает, что исходные координаты точки х и у преобразуются в х При а = d = 1 и с = b = 0 преобразование сведется к единичной матрице
и координаты точки Р останутся неизменными. Как и следовало ожидать, в линейной алгебре умножение на единичную матрицу эквивалентно умножению на 1 в обычной алгебре. В случае d = l, b = c = 0
где х Рассмотрим теперь еще случай b = с = 0, т.е.
Данное преобразование вызывает изменение обеих координат х и у вектора Р (рис. 2-1 b). Если а Если значение a или d отрицательное, то вектор отражается относительно координатных осей или относительно плоскости. Чтобы убедиться в этом, возьмем b = с = 0, d = 1 и a
и в результате получаем симметричное отражение относительно оси у (рис. 2-1 с). Если b = с = 0, а = 1, d Если b = с = 0, а = d < 0, то происходит отражение относительно начала координат, это показано на рис. 2-1 d, где а = - 1, d = 1. Заметим, что обе операции отражения и масштабирования зависят только отдиагональных членов матрицы преобразования. Рассмотрим теперь случай с недиагональными членами. Возьмем сначала значения a = d = l, c = 0, тогда
Заметим, что координата х точки Р осталась неизменной, тогда как координата y * линейно зависит от исходных координат. Данное преобразование называется сдвигом (рис. 2-1е). Аналогично, в случае, когда a = d = l, b = 0, преобразование приведет к сдвигу пропорционально координате у (рис. 2-1 f). Таким образом, видно, что недиагональные члены матрицы преобразования создают эффект сдвига координат вектора точки Р. Прежде чем закончить с преобразованием точек, разберем действие общего преобразования, заданного выражением (2-1), когда начальный вектор лежит в точке начала координат, т.е. или, в случае начала координат,
Видно, что начало координат инвариантно относительно преобразования общего вида. Это ограничение устраняется при использовании однородных координат. 2-5 ПРЕОБРАЗОВАНИЕ ПРЯМЫХ ЛИНИЙ Прямую линию можно определить с помощью двух векторов, задающих координаты ее конечных точек. Расположение и направление линии, соединяющей две эти точки, может изменяться в зависимости от положений векторов. Реальный вид изображения линии зависит от типа используемого дисплея. В этом разделе мы рассмотрим только математические операции над конечными точками линии. На рис. 2-2 изображена прямая линия, проходящая между двумя точками A и В. Положение векторов точек А и В задается следующим образом: [ А ]= [0 1] и [ B ] = [2 3]. Рассмотрим матрицу преобразования
которая, как следует из предыдущего обсуждения, приводит к сдвигу изображения. Преобразование векторов А и В с помощью матрицы [ Т ] дает новое положение векторов A
и
Таким образом, результирующие координаты для точки А
Умножим эту матрицу на [ T ]:
где компоненты [ L 2-6 ПРЕОБРАЗОВАНИЕСРЕДНЕЙ ТОЧКИ На рис. 2-2 видно, что(2 х 2)-матрица преобразует прямую линию у= х + 1,проходящую между точками А и В в другую прямую
Преобразуем одновременно две крайние точки:
итак, конечные точки преобразованной линии А
Средняя точка отрезка А
Возвращаясь к исходной линии AB, можно определить среднюю точкуследующим образом:
Применив матрицу преобразования [ Т ]к средней точке линии АВ,получаем:
Из сравнения выражений (2-13) и (2-15) видно, что они одинаковы, и поэтому средняя точка линии АВ преобразуется в среднюю точку линии А
|