Лекция_КГ_6

advertisement
Лекция 6
Базовая графика
Вывод изображения на экран дисплея и разнообразные действия с ним, в
том числе и визуальный анализ, требуют от пользователя известной
геометрической грамотности. Геометрические понятия, формулы и факты,
относящиеся прежде всего к плоскому и трехмерному случаям, играют в
задачах компьютерной графики особую роль.
Геометрические фигуры представлены в памяти ЭВМ числовыми
моделями, содержащими параметры формы и параметры положения фигуры,
а
также
геометрические
условия
формирования
фигуры.
В начертательной геометрии рассматриваются способы описания фигур с
помощью параметров. Минимальное количество параметров, необходимых
для
описания
фигуры,
называется
ее
параметрическим
числом.
Точка задается двумя параметрами на плоскости и тремя в пространстве.
Прямая задается двумя параметрами на плоскости и четырьмя в
пространстве.
Плоскость тремя параметрами. Точки, прямые и плоскости описываются
параметрами положения. Отрезок прямой на плоскости задается четырьмя и
в пространстве шестью параметрами, из которых один (длина отрезка)
является параметром формы. Окружность задается тремя параметрами, из
которых
один
(радиус
окружности)
является
параметром
формы.
Числовые модели фигур могут быть заданы аналитически в виде неявного
уравнения либо параметрически в виде параметрического уравнения.
Например,
в
случае
окружности
параметрами
положения
являются
координаты хс ус ее центра, параметром формы величина R радиус. С
помощью этих параметров может быть написано неявное уравнение
окружности:
Та же окружность может быть задана параметрическим уравнением, где
добавлен
еще
один
переменный
параметр
центральный
угол
а,
определяющий положение точки на окружности:
С помощью последних уравнений можно воспроизвести процесс построения
отдельных
точек
окружности,
определяя
ее
как
множество
точек.
В начертательной геометрии есть понятие определителя фигуры, который
состоит из частей: постоянной (в случае окружности это, например, xc, yc, R
) и переменной ( ). Первая геометрическая, вторая алгоритмическая части
определителя. Легко видеть, что алгоритмическая часть определителя задает
алгоритм воспроизводства всего множества точек, принадлежащих фигуре,
которая имеет данную геометрическую часть определителя. Все эти понятия
являются фундаментальными для компьютерной графики.
Аффинные преобразования на плоскости
Аффинное преобразование это такое преобразование, которое сохраняет
параллельность
линий,
но
не
обязательно
углы
или
длины.
В компьютерной графике все, что относится к двумерному случаю, принято
обозначать символом 2D (2-dimension). Допустим, на плоскости введена
прямолинейная координатная система. Тогда каждой точке М ставится в
соответствие упорядоченная пара чисел (х, у) ее координат (рис. 1).
Вводя на плоскости еще одну прямолинейную систему координат, мы ставим
Где
-
x*  x  y   ,
y*  x  y   ,
 ,  ,  ,  ,  ,  - произвольные числа
в соответствие той же точке М другую пару чисел (х*, у*). Переход от одной
прямолинейной координатной системы на плоскости к другой описывается
следующими соотношениями:
Указанные выше формулы можно рассматривать двояко: либо сохраняется
точка и изменяется координатная система в этом случае произвольная точка
М остается той же, изменяются лишь ее координаты (х, у) (х*, у*) , либо
изменяется точка и сохраняется координатная система в этом случае
формулы задают отображение, переводящее произвольную точку М(х, у) в
точку М*(х*, у*), координаты которой определены в той же координатной
системе. В дальнейшем будем интерпретировать формулы, как правило, что в
заданной
системе
прямолинейных
координат
преобразуются
точки
плоскости.
В аффинных преобразованиях плоскости особую роль играют несколько
важных частных случаев, имеющих хорошо прослеживаемые геометрические
характеристики. При исследовании геометрического смысла числовых
коэффициентов в формулах для этих случаев удобно считать, что заданная
система
координат
является
прямоугольной
декартовой.
Наиболее часто применяются следующие приемы компьютерной графики:
перенос, масштабирование, поворот, отражение. Алгебраические выражения
и рисунки, поясняющие данные преобразования сведем в табл.1.
Аффинные преобразования на плоскости
Под переносом понимается смещение примитивов вывода на один и тот же
вектор.
Масштабирование это увеличение или уменьшение всего изображения либо
его
части.
При
умножаются
масштабировании
на
координаты
точек
некоторое
изображения
число.
Под поворотом понимается вращение примитивов вывода вокруг заданной
оси. ( В плоскости чертежа вращение происходит вокруг точки.)
Под
отражением
понимают
получение
зеркального
отображения
изображения
относительно
одной
из
осей
(например
X).
Выбор этих четырех частных случаев определяется двумя обстоятельствами:
1. Каждое из приведенных выше преобразований имеет простой и наглядный
геометрический смысл (геометрическим смыслом наделены и постоянные
числа,
входящие
в
приведенные
формулы).
2. Как доказывается в курсе аналитической геометрии, любое преобразование
вида (*) всегда можно представить как последовательное исполнение
(суперпозицию) простейших преобразований вида А, Б, В и Г (или части этих
преобразований).
Таким образом, справедливо следующее важное свойство аффинных
преобразований плоскости: любое отображение вида (*) можно описать при
помощи
отображений,
задаваемых
формулами
А,
Б,
В
и
Г.
Для эффективного использования этих известных формул в задачах
компьютерной графики более удобной является их матричная запись.
Для объединения этих преобразований вводят однородные координаты.
Однородными координатами точки называется любая тройка одновременно
не равных нулю чисел x1 , x2 , x3 , связанных с заданными числами x и y
следующими соотношениями:
Тогда точка M(х, у) записывается как M(hX, hY, h), где h 0 является
масштабным множителем. Двумерные декартовы координаты могут быть
найдены как
В проективной геометрии эти координаты вводятся для устранения
неопределенностей,
(несобственных)
возникающих
элементов.
при
задании
Однородные
бесконечноудаленных
координаты
можно
интерпретировать как вложение промасштабированной с коэффициентом h
плоскости
в
плоскость
Z=
h
в
трехмерном
пространстве.
Точки в однородных координатах записываются трехэлементными векторстроками.
Матрицы
преобразования
должны
иметь
размер
3х3.
При помощи троек однородных координат и матриц третьего порядка можно
описать
любое
аффинное
преобразование
плоскости.
В самом деле, считая h = 1, сравним две записи: помеченную символом (*) и
нижеследующую, матричную:
Теперь можно использовать композиции преобразований, применяя одно
результирующее вместо ряда преобразований, следующих друг за другом.
Можно, например, сложную задачу разбить на ряд простых. Поворот точки А
около
перенос,
произвольной
при
точки
котором
В
В=
можно
0
разбить
(где
на
0-начало
три
задачи:
координат);
поворот;
обратный перенос, при котором точка В возвращается на место и т. д.
Композиция наиболее общего вида из операций Т, D, R, M имеет матрицу:
Верхняя часть размером 2х2 - объединенная матрица поворота и
масштабирования,
a
tx
и
ty
описывают
суммарный
перенос.
К изложенным фундаментальным преобразованиям сводятся следующие:
прокручивание перемещение окна на поверхности визуализации (если
перемещение ограничено только направлениями вверх и вниз, то оно
называется вертикальным прокручиванием);
трансфокация
постепенное
изменение
масштаба
изображения;
кувыркание динамическое изображение примитивов вывода, вращающихся
вокруг некоторой оси, ориентация которой непрерывно изменяется в
пространстве;
панорамирование постепенный перенос изображения с целью создания
зрительного ощущения движения.
Пространственная графика
Обратимся теперь к трехмерное случаю (3D) (3-dimension) и начнем
рассмотрение
сразу
с
введения
однородных
координат.
Поступая аналогично тому, как это было сделано в размерности два, заменим
координатную тройку (х, у, z), задающую точку в пространстве, на четверку
чисел
(х
у
z
1)
или,
в
более
общем
виде,
на
четверку
(hx hy hz h), h 0.
Каждая точка пространства (кроме начальной точки О) может быть
задана четверкой одновременно не равных нулю чисел; эта четверка чисел
определена
однозначно
с
точностью
до
общего
множителя.
Предложенный переход к новому способу задания точек дает возможность
воспользоваться матричной записью и в более сложных, трехмерных задачах.
Любое аффинное преобразование в трехмерном пространстве может быть
представлено в виде суперпозиции вращений, растяжений, отражений и
переносов. Поэтому имеет смысл подробно рассмотреть матрицы именно
этих преобразований (очевидно, что в данном случае порядок матриц должен
быть равен четырем).
В. Матрицы вращения в пространстве
Матрицы вращения вокруг оси абсцисс, ординат и аппликат соответственно
будут иметь вид:
Полезно обратить внимание на место знака "-" в каждой из трех приведенных
матриц.
Г.
Матрицы
соответственно:
отражения
относительно
плоскостей
хy,
уz,
zx,
Как и в двумерном случае, все описанные матрицы невырождены.
Таким образом, результирующая матрица преобразований в пространстве
будет иметь вид:К
Очевидно, что для изменения положения некоторого тела в пространстве
необходимо выполнить преобразование координат для каждой его точки.
Геометрические сплайны
С момента своего возникновения сплайны рассматривались как удобный
инструмент в теории и практике приближения функций, в численных
методах. С появлением компьютерной графики они получили широкое
распространение и в этой области.
Термин "сплайн" происходит от английского spline гибкая полоска
стали для проведения плавных кривых через заданные точки. В
компьютерной графике сплайны используются для задания поверхности
обтекаемого тела. В основе этого подхода к описанию поверхностей лежит
использование
сравнительно
несложных
формул,
позволяющих
восстанавливать облик изделия с необходимой точностью.
Достаточно типичной является следующая задача: по заданному массиву
точек на плоскости (2D) или в пространстве (3D) построить кривую либо
проходящую через все эти точки (задача интерполяции), либо проходящую
вблизи от этих точек (задача сглаживания). При этом ограничимся лишь
сплайнами, в построении которых используются кубические (в случае
одномерных сплайнов - сплайновых кривых) и бикубические (в случае
двумерных
сплайнов
-
сплайновых
поверхностей)
многочлены.
В
компьютерной графике подобные сплайны применяются наиболее часто.
Рассмотрим, прежде всего, что такое интерполяционный бикубический
сплайн. Пусть на плоскости задан набор из (m+1)(n+1) точек (рис. 2)
Рис.2. Набор точек на плоскости
Добавим к каждой паре (xi, yj) третью координату zij (xi, yi, zij), т.е.
получаем массив (xi, yi, zij), i=0,1,2,…,m; j=0,1,2,…,n. Прежде чем стоить
поверхность, проходящую через все точки заданного массива, определим
функцию, графиком которой будет эта поверхность.
Интерполяционным бикубическим сплайном называется функция двух
переменных S(x, у), обладающая следующими свойствами:
1) график этой функции проходит через каждую точку заданного массива,
S(xi,yj) = zjj, i=0,l,...,m; j= 0,1,..., n;
2) на
каждом
частичном
прямоугольнике
[xi, xi+l ] [yj. yj+1], i = 0, l,…,m-l, j = 0, l,...,n-l,
функция представляет собой многочлен третьей степени по каждой из
переменных,
на всем прямоугольнике задания [x0, xm] [y0, yn] функция S(x, у) имеет по
каждой переменной непрерывную вторую производную.
Для того чтобы построить по заданному массиву {(xi, yi, zij)}
интерполяционный бикубический сплайн, достаточно определить все
16mn
коэффициентов.
сводится
к
Отыскание
построению
решения
связывающих искомые коэффициенты
коэффициентов
системы
сплайн-функции
линейных
.
уравнений,
Последняя возникает из первого и третьего условий после добавления к
ним недостающих соотношений путем задания значений производной
искомой функции в граничных узлах прямоугольника [x0, xm] [y0, yn]
(или иных соображений).
Достоинства преложенного способа для решения линейных систем,
возникающих в ходе построения сплайн-функций, существует много
эффективных методов, к тому же эти системы достаточно просты;
графики построенных сплайн-функций проходят через все заданные
точки, полностью сохраняя первоначально заданную информацию.
Вместе с тем изменение лишь одной точки (случай на практике довольно
типичный) при описанном подходе заставляет пересчитывать заново, как
правило, все коэффициенты.
К тому же во многих задачах исходный набор точек задается
приближенно и, значит, требование неукоснительного прохождения
графика искомой функции через каждую точку этого набора оказывается
излишним.
От этих недостатков свободны некоторые из методов сглаживания.
Определим
некоторые
понятия,
которые
будут
использованы
в
дальнейших рассуждениях.
Регулярной поверхностью называется множество точек M(x, y, z)
пространства,
координаты
x,
y,
z
которых
определяются
параметрических уравнений поверхности
x = x(u, v), y = y(u, v), z = z(u, v), (u, v) D,
где x(u, v), y(u, v), z(u, v) гладкие функции своих аргументов, причем
выполнено соотношение
из
D
некоторая
область
параметров
на
плоскости
u
и
v.
Последнее равенство означает, что в каждой точке регулярной поверхности
существует касательная плоскость и эта плоскость при непрерывном
перемещении по поверхности текущей точки изменяется непрерывно.
Параметрические уравнения поверхности можно также записать в векторной
форме:
r = r(u, v), (u, v) D,
где r(u, v) = (x(u, v), y(u, v), z(u, v)).
Для простоты будем считать, что область на плоскости параметров
представляет собой стандартный единичный квадрат.
Ограничимся рассмотрением наборов точек вида Vij, i=0,l,...,m; j= 0,1,..., n.
Соединяя соответствующие вершины прямолинейными отрезками, получаем
контрольный (или опорный) граф заданного массива V (рис.2).
Сглаживающая поверхность строится относительно просто, в виде так
называемого тензорного произведения. Так принято называть поверхности,
описываемые параметрическими уравнениями вида
Рис.2. Контрольный граф
Построение сглаживающих поверхностей удобно начать с описания
уравнений
элементарных
фрагментов.
Ограничившись бикубическим случаем (наиболее часто используемым в
компьютерной графике), когда функциональные коэффициенты ai(u) и bj(v)
представляют
собой
многочлены
третьей
степени
относительно
соответствующих переменных (кубические многочлены), запишем для
заданного набора из 16 точек Vij, i= 0, l, 2, 3; j = 0, 1, 2, 3 параметрические
уравнения элементарных фрагментов некоторых поверхностей, считая для
простоты, что область изменения параметров u и v представляет собой
единичный
квадрат.
В зависимости от типа имеющихся исходных данных, от геометрии
проектирующей поверхности применяют представления в виде форм:



Эрмита;
Безье;
Бета-сплайнов (В-сплайнов).
Первый способ предполагает построение бикубического участка в виде
изогнутого четырехугольника, к углам которого могут пристыковываться
такие же участки и по Эрмиту имеющие вид:
Здесь Mh матрица размерностью 4х4 имеет вид:
Матрицы Q размером 4х4 строятся на основе информации координат
угловых точек по частным производным в этих точках:
Аналогично можно записать матрицы Qy и Qz.
При переходе с одного куска поверхности к другому обеспечивается
совпадение координат всех точек граничащих кривых и совпадение первых
производных в этих точках. Недостаток метода заключается в сложности
получения
значений
Параметрические
частных
уравнения
производных
фрагмента
в
угловых
элементарной
точках.
бикубической
поверхности Безье имеет вид:
В матричной форме выражение примет вид:
базисная матрица Безье.
Элементарная бикубическая поверхность Безье обладает следующими
свойствами:
лежит
в
выпуклой
является
оболочке
гладкой
порождающих
ее
точек;
поверхностью;
опираясь в точки v00, v03, v30, v33, касается исходящих из них отрезков
контрольного графа (рис.3).
Рис.3. Пример поверхности Безье
Для гладкого перехода от одного элементарного бикубического элемента
Безье к другому необходимо совпадение четырех смежных управляющих
точек
и
отсутствие
Существенным
изломов
недостатком
в
метода
стыке
соприкасающихся
является
то,
что
полей.
изменение
местоположения хотя бы одной точки приводит к значительным изменениям
вида
всей
кривой.
Матричное представление элементарного фрагмента бикубической Всплайновой поверхности имеет вид:
Элементарная
бикубическая
В-сплайновая
поверхность
имеет
много
положительных свойств:
является гладкой;
лежит в выпуклой оболочке порождающих ее 16 вершин;
повторяет контрольную многогранную поверхность;
обладает непрерывностью первой и второй производной, поэтому ее
применяют для поверхностей со сложной топографией.
Download