Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Двумерные преобразования




2-1 ВВЕДЕНИЕ

Изучение математического аппарата, лежащего в основе машинной графики, мы начнем с рассмотрения способов вывода и преобразования точек и линий. Эти способы наряду с соответствующими алгоритмами рисования используются для изображения объектов или визуализации графической информации. Возможность проводить преобразования точек и линий является фундаментом машинной графики. Нарисованный объект может быть представлен в нужном масштабе, повернут, перемещен, преобразован или модифицирован в соответствии с требованиями решаемой задачи. Все эти манипуляции с изображением можно выполнить, используя математический аппарат, изложенный в данной главе.

2-2 ИЗОБРАЖЕНИЕ ТОЧЕК

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

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

2-3 ПРЕОБРАЗОВАНИЯ И МАТРИЦЫ

В качестве элементов матрицы могут фигурировать различные величины: числа, сетки или коэффициенты системы уравнений. Правила в матричной алгебре определяют допустимые операции над элементами. Многие физические задачи удобно выражаются в матричном представлении. Для моделей физических систем задача обычно ставится следующим образом: даны матрицы [A] и [B], найти результирующую матрицу [Т], такую, что [А][Т] = [В]. В этом случае решением является матрица [T] = [A]-1[В], где [А]-1—матрица, обратная к квадратной матрице [А].

В то же время матрицу [Т]можно интерпретировать как геометрический оператор. В этом случае длявыполнения геометрического преобразования точек, представленных векторами положений в матрице [А], используется умножение матриц. Предположим, что матрицы [А]и [T] известны. Требуется определить элементы матрицы [В]. Представление [T] как геометрического оператора является основой математических преобразований, используемых в машинной графике.

2-4 ПРЕОБРАЗОВАНИЕ ТОЧЕК

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

(2-1)

Данная запись означает, что исходные координаты точки х и у преобразуются в х и y , где х =ах + су, у =bx + dy. Представляют интерес значения х , у —координаты результирующей, преобразованной точки Р. Рассмотрим некоторые специальные случаи.

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

(2-2)

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

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

, (2-3)

где х = ах — результат масштабирования координаты x. Эффект такого преобразования показан на рис. 2-1а.

Рассмотрим теперь еще случай b = с = 0, т.е.

. (2-4)

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

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

(2-5)

и в результате получаем симметричное отражение относительно оси у (рис. 2-1с).

Если b = с = 0, а = 1, d , то выполняется симметричное отражение относительно оси х.

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

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

(2-6)

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

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

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

.

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

2-5 ПРЕОБРАЗОВАНИЕ ПРЯМЫХ ЛИНИЙ

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

На рис. 2-2 изображена прямая линия, проходящая между двумя точками A и В. Положение векторов точек А и В задается следующим образом: [А]= [0 1] и [B] = [2 3].

Рассмотрим матрицу преобразования

(2-7)

которая, как следует из предыдущего обсуждения, приводит к сдвигу изображения. Преобразование векторов А и В с помощью матрицы [Т] дает новое положение векторов A и В

(2-8)

и

(2-9)

Таким образом, результирующие координаты для точки А - это х = 3 и у = 1. Аналогично, В — новая точка с координатами x = 11, у = 7. В более компактном виде отрезок АВ может быть представлен матрицей размером (2x2):

Умножим эту матрицу на [T]:

, (2-10)

где компоненты [L ]представляют собой преобразование координат векторов[A*] и [B*]. Результат преобразования А в А и ВвВ показан на рис. 2-2, гдехи y это исходные оси координат, а х и y — преобразованные оси. Из рисункавидно,что преобразование сдвига [T] увеличивает длину отрезка и изменяет его направление.

2-6 ПРЕОБРАЗОВАНИЕСРЕДНЕЙ ТОЧКИ

На рис. 2-2 видно, что(2 х 2)-матрица преобразует прямую линиюу= х+ 1,проходящую между точкамиА и Вв другую прямую ,которая проходит между точками А иВ . Фактически с помощью (2 х 2)-матрицы осуществляется преобразование любой прямой в другую прямую. Все точки преобразованнойлинии непосредственно соответствуют всем точкам исходной линии.Этодостаточно очевидно для конечных точек линии. Рассмотрим теперь преобразование средней точки прямой линии АВ. Допустим, что

.

Преобразуем одновременно две крайние точки:

(2-11)

итак, конечные точки преобразованной линии А В имеют следующие координаты

(2-12)

Средняя точка отрезка А В выражается через преобразованные конечные точки

. (2-13)

Возвращаясь к исходной линии AB, можно определить среднюю точкуследующим образом:

(2-14)

Применив матрицу преобразования [Т]к средней точке линии АВ,получаем:

(2-15)

Из сравнения выражений (2-13) и (2-15) видно, что они одинаковы, и поэтому средняя точка линии АВ преобразуется в среднюю точку линии А В . Такой метод можно применить и к любым другим отрезкам разделенной линии. Таким образом, при преобразовании путем умножения на матрицу гарантируется соответствие всех точек линии АВ и А В .







Дата добавления: 2015-04-16; просмотров: 152. Нарушение авторских прав

Studopedia.info - Студопедия - 2014-2018 год . (0.007 сек.) русская версия | украинская версия