КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Двумерные преобразования
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-1 b). Если а 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-1 d, где а = - 1, d = 1. Заметим, что обе операции отражения и масштабирования зависят только отдиагональных членов матрицы преобразования. Рассмотрим теперь случай с недиагональными членами. Возьмем сначала значения a = d = l, c = 0, тогда (2-6)
Заметим, что координата х точки Р осталась неизменной, тогда как координата y * линейно зависит от исходных координат. Данное преобразование называется сдвигом (рис. 2-1е). Аналогично, в случае, когда a = d = l, b = 0, преобразование приведет к сдвигу пропорционально координате у (рис. 2-1 f). Таким образом, видно, что недиагональные члены матрицы преобразования создают эффект сдвига координат вектора точки Р. Прежде чем закончить с преобразованием точек, разберем действие общего преобразования, заданного выражением (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-25; Просмотров: 693; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |