Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Афинные преобразования на плоскости
Афинные преобразования - точечные взаимно однозначные отображения плоскости (пространства) на себя, при которых прямые переходят в прямые. Иначе говоря, преобразование называется аффинным, если его можно получить следующим образом: 1. Выбрать «новый» базис пространства с «новым» началом координат v; 2. Каждой точке x пространства поставить в соответствие точку f(x), имеющую те же координаты относительно «новой» системы координат, что и x в «старой». Свойства 1. При аффинном преобразовании прямая переходит в прямую. 2. Если размерность пространства n >= 2, то любое преобразование пространства (то есть биекция пространства на себя), которое переводит прямые в прямые, является аффинным. Это определение используется в аксиоматическом построении аффинной геометрии 3. Частным случаем аффинных преобразований являются движения и преобразования подобия.
см. http://ru.wikibooks.org/wiki/Афинные_преобразования
Аффинное преобразование и его матричное представление
Однородные координаты
Если рассмотреть параллельный перенос, то оказывается, что для его задания матрицы 2x2 уже недостаточно. Но его можно задать с помощью матрицы размера 3x3. Появляется вопрос, откуда взять третью координату у двумерной точки?
Определение. Однородные координаты — координаты, обладающие тем свойством, что определяемый ими объект не меняется при умножении всех координат на одно и то же число.
Однородными координатами вектора (х, у) является тройка чисел (x', y', h), где х = х' / h, у = y'/h, а h — некоторое вещественное число (случай, когда h = 0 является особым).
Прим. Данные координаты не позволяют однозначно задать точку плоскости. Например, (1, 1, 1) и (2, 2, 2) задают одну и ту же точку (1, 1). Предлагается взять набор (x, y, 1), который будет описывать все точки плоскости. Матрица преобразования для однородных координат имеет размер 3х3. Рассмотрим некоторые преобразования в однородных координатах. Сжатие/растяжение
Это преобразование умножает соответствующие координаты точек на коэффициенты масштабирования по осям: (x, y) -> (ax * x, ay * y). Матрица преобразования запишется следующим образом:
[ ax 0 0 ]
[ 0 ay 0 ]
[ 0 0 1 ]
Где ax – растяжение по оси x,
ay – растяжение по оси y.
Прим. Можно заметить, что при отрицательных значениях коэффициентов сжатия/растяжения происходит отражение относительно соответствующих осей. Этот случай можно включить в данное преобразование, а можно вынести в отдельное, сказав, что коэффициенты масштабирования принимают только положительные значения.
Поворот
Матрица поворота 2x2 была подробно разобрана ранее. Теперь она дополняется строкой и столбцом:
[ cos(phi) sin(phi) 0 ]
[ -sin(phi) cos(phi) 0 ]
[ 0 0 1 ]
Прим. При угле phi = п эта матрица задает центральную симметрию относительно начала координат, которая является частным случаем поворота. Можно заметить, что такую симметрию можно задать с помощью преобразования сжатия/растяжения (допуская отрицательные коэффициенты масштабирования).
Параллельный перенос
Исходный вектор (x, y) переходит в (x + tx, y + ty). Матрица преобразования запишется следующим образом:
[ 1 0 0 ]
[ 0 1 0 ]
[ tx ty 1 ]
Отражение
Как говорилось в примечании к преобразованию сжатия/растяжения, отражения получаются следующим образом:
[ -1 0 0 ]
[ 0 1 0 ]
[ 0 0 1 ] отражение относительно оси x
[ 1 0 0 ]
[ 0 -1 0 ]
[ 0 0 1 ] отражение относительно оси y
Общий вид аффинного преобразования
Матрица 3x3, последний столбец которой равен ( 0 0 1 )T, задает аффинное преобразование плоскости:
[ * * 0 ]
[ * * 0 ]
[ * * 1 ]
По одному из свойств, аффинное преобразование можно записать в виде:
f(x) = x * R + t,
где R – обратимая матрица 2x2, а t – произвольный вектор. В однородных координатах это запишется следующим образом:
[ R1,1 R1,2 0 ]
[ R2,1 R2,2 0 ]
[ tx ty 1 ]
Если умножить вектор-строку на эту матрицу получаем результат преобразования:
[ x y 1 ] * [ R1,1 R1,2 0 ]
[ R2,1 R2,2 0 ]
[ tx ty 1 ] =
[ x’ y’ 1 ] + [ tx ty 1 ]
При этом [ x’ y’ ] = R * [ x y ]
Прим. Любопытный читатель уже задал себе вопрос: в чем смысл определителя матрицы R? При аффинном преобразовании площади всех фигур изменяются в |R|. (Можно строго доказать это с точки зрения математики, но здесь этот факт приводится без доказательства.)
Т.о. аффинное преобразование представляется в виде композиции некоторого преобразования, задаваемого матрицей R, и параллельного переноса. Разберем более подробно природу этой матрицы и возможности, которые она нам дает.
Матрица R определяет новый базис плоскости. Т.е. вектор (1, 0) переходит в (R1,1, R1,2), вектор (0, 1) переходит в (R2,1, R2,2). Новый базис это строки матрицы R.
При отражении относительно оси y, базисный вектор по оси ординат сохраняется, а по оси абсцисс переходит в (-1, 0). Т.о. матрица R будет выглядеть следующим образом:
[ -1 0 ]
[ 0 1 ]
Форматы файлов векторной графики
1. Scalable Vector Graphics (SVG и SVGZ) 2. Encapsulated PostScript (EPS) 3. Метафайлы Windows: WMF, EMF
1. SVG (Scalable Vector Graphics) - масшабируемая векторная графика. Предназначен для описания двухмерной векторной и смешанной векторно/растровой графики в формате XML. Поддерживаеткак неподвижную (декларативную), так анимированную и интерактивную (скриптовую) графику.
2. EPS - Формат EPS был создан компанией Adobe на основе языка PostScript. Формат используется в профессиональной полиграфии, и может содержать растровые изображения, векторные изображения, а также их комбинации. Изображение, записанное в EPS-формате, может быть сохранено в разных цветовых пространствах: Grayscale, RGB, CMYK, Lab, Multi-channel. Структура данных растрового EPS-файла может быть записана разными методами: ASCII-данные (текстовые данные), Binary (двоичные данные) и JPEG с различной степенью сжатия.
3. WMF — универсальный формат векторных графических файлов для Windows приложений. Используется для хранения коллекции графических изображений Microsoft Clip Gallery. Формат разработан Microsoft и является неотъемлемой частью Windows, так как сохраняет последовательность аппаратно-независимых функций GDI (Graphical Device Interface), непосредственно выводящих изображение в заданный контекст графического устройства (на экран, на принтер и т.п.). Из MS Windows запись и чтение в файл этого формата осуществляются чрезвычайно просто и быстро, в других операционных системах поддержка этого формата бесполезна.
Основные понятия 3D компьютерной графики
3D графика оперирует с объектами в трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. В 3D компьютерной графике все объекты обычно представляются как набор поверхностей или частиц. Минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники.
Для получения трёхмерного изображения требуются следующие шаги: 1. моделирование — создание математической модели сцены и объектов в ней. 2. рендеринг — построение проекции в соответствии с выбранной физической моделью. Моделирование Сцена (виртуальное пространство моделирования) включает в себя несколько категорий объектов: 1. Геометрия (построенная с помощью различных техник модель, например здание) 2. Материалы (информация о визуальных свойствах модели, например цвет стен и отражающая/преломляющая способность окон) 3. Источники света (настройки направления, мощности, спектра освещения) 4. Виртуальные камеры (выбор точки и угла построения проекции) 5. Силы и воздействия (настройки динамических искажений объектов, применяется в основном в анимации) 6. Дополнительные эффекты (объекты, имитирующие атмосферные явления: свет в тумане, облака, пламя и пр.) Задача трёхмерного моделирования — описать эти объекты и разместить их в сцене с помощью геометрических преобразований в соответствии с требованиями к будущему изображению. Рендеринг На этом этапе математическая (векторная) пространственная модель превращается в плоскую картинку. Всеми визуальными преобразованиями в 3D-графике управляют матрицы (афинные преобразования). В компьютерной графике используется три вида матриц: 1. матрица поворота 2. матрица сдвига 3. матрица масштабирования Любой полигон можно представить в виде набора из координат его вершин. Так, у треугольника будет 3 вершины. Координаты каждой вершины представляют собой вектор (x, y, z). Умножив вектор на соответствующую матрицу, мы получим новый вектор. Сделав такое преобразование со всеми вершинами полигона, получим новый полигон, а преобразовав все полигоны, получим новый объект, повёрнутый/сдвинутый/промасштабированный относительно исходного.
|
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 266. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |