Студопедия

КАТЕГОРИИ:

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

Афинные преобразования на плоскости




 

Афинные преобразования - точечные взаимно однозначные отображения плоскости

(пространства) на себя, при которых прямые переходят в прямые.

Иначе говоря, преобразование называется аффинным, если его можно получить следующим образом:

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 не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...