Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Компьютерная графика и геометрическое моделирование в информационных системах. Учебное пособие для бакалавров направлений подготовки 230100 «Информати.pdf
X
- •ВВЕДЕНИЕ
- •5. ПРОЕЦИРОВАНИЕ ТРЁХМЕРНЫХ ОБЪЕКТОВ
- •6. РАСТРОВОЕ ТЕКСТУРИРОВАНИЕ
- •10. МОДЕЛИ ОСВЕЩЕНИЯ
- •12. ВОСПРОИЗВЕДЕНИЕ КРИВЫХ
- •12.1. ИНТЕРПОЛИРОВАНИЕ С ПОМОЩЬЮ МНОГОЧЛЕНОВ
- •12.2. МНОГОЧЛЕНЫ БЕЗЬЕ
- •12.3. ПАРАМЕТРИЧЕСКИЕ КУБИЧЕСКИЕ КРИВЫЕ
- •13.1. ФОРМА ЭРМИТА
- •12.5. СРАВНЕНИЕ КРИВЫХ ЭРМИТА, БЕЗЬЕ И B-СПЛАЙНОВ
- •13.2. ФОРМА БЕЗЬЕ
- •13.3. ФОРМА B-СПЛАЙНОВ
- •14. ПРИБЛИЖЕНИЕ И ВОСПРОИЗВЕДЕНИЕ ПОВЕРХНОСТЕЙ
- •14.2. ПЛАЗОВЫЕ ПОВЕРХНОСТИ
- •14.3. ПОВЕРХНОСТЬ КУНСА
- •14.4. ПОСТРОЕНИЕ ПОВЕРХНОСТЕЙ ПО ОРИЕНТИРАМ
- •16. МОДЕЛИРОВАНИЕ ГЕОМЕТРИЧЕСКИХ ФОРМ
- •16.1. МЕТОДЫ ПОСТРОЕНИЯ МОДЕЛЕЙ
- •16.2. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ МОДЕЛЕЙ
- •16.3. ДВУМЕРНОЕ МОДЕЛИРОВАНИЕ
- •16.4. ТРЁХМЕРНОЕ МОДЕЛИРОВАНИЕ
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ

а) б)
Рис. 11.4. Пример внутреннего отражения в прозрачных объектах
лежит в тени и его вклад в локальное диффузное и зеркальное отражение уменьшается. Если поверхность, лежащая на пути луча, непрозрачна, то свет источника вообще не попадает на поверхность, а если
тень отбрасывается прозрачной поверхностью, то свет ослабляется в
зависимости от её свойств. Теневые зонды показаны на рис. 11.3.
зображений приведённые расчёты
При построении цветн
ых и
выполняются три раза: отдельно для красного (R), зелёного (G) и синего (B) значения, причём каждый раз со своими оптическими характеристиками.
В алгоритме трассировки луча с использованием глобальной модели освещения применяется стек лучей магазинного типа, который
служит для передачи информации об отражённом и пропущенном свете между элементами дере
ва луча. В ка
ждый момент времени стек содержит только часть дерева, поэтому его объём можно ограничить самой длинной предполагаемой ветвью. Ветвь дерева оканчивается, когда и отражённый, и преломлённый лучи уходят за пределы сцены или
когда переполняется стек. Если оба луча покидают сцену, то их вклад
го луча равен нулю. Если переполняется стек,
в интенсивность исхо
дно
то алгоритм рассчитывает интенсивность исходного луча, используя
лишь компоненты рассеянного, диффузного и зеркального отражения
в точке падения луча.
Сформулируем основные выводы по алгоритму «Обратная трас-
сировка луча» [5]. Преимущества:
Универсальность метода, его применимость для синтеза изо-
1.
бражений достаточно сложных пространственных схем. Воплощает
многие законы геометрической оптики. Просто реализуются разнообразные проекции.
Даже усечённые варианты данного метода позволяют полу-
2.
чить достаточно реалистичные изображения.
41

3. Поскольку расчёт отдельной точки изображения выполняется
независимо от других точек, то это можно эффективно использовать
при реализации данного метода в параллельных вычислительных системах, в которых лучи могут трассироваться одновременно.
Недостатки:
Вычислительные проблемы с моделированием диффузного
1.
отражения и преломления.
Для каждой точки изображения необходимо выполнить много
2.
вычислительных операций. Трассировка лучей относится к числу самых медленных алгоритмов синтеза изображений. Но с каждым днём
при росте производительности современных ЭВМ алгоритм «Обратная
трассировка луча» становится все актуальнее.
12. ВОСПРОИЗВЕДЕНИЕ КРИВЫХ
При решении одних прикладных задач допустимо представление
кривой в виде последовательности пикселов, а при решении других
предпочтительно задавать кривую с помощью математического выражения [1, 3]. Последнее может оказаться значительно компактнее дискретных представлений. Поиск кривой, проходящей через заданное
множество точек, составляет задачу интерполирования. Нахождение
кривой, проходящей вблизи заданного множества точек – задача ап-
о
ксимации. Для обозначения обеих задач будем пользоваться тер-
пр
мином «построение кривой по точкам». Представляет также интерес
задача воспроизведения изображения кривой, заключающаяся в следующем: для заданного математического выражения требуется найти
соответствующие пикселы и присвоить им значения, при которых они
составляют изображение кривой, описываемой заданным выражением.
роек
Задачи построения кривых по точкам возникают в п
нии и промышленном производстве, а также в машинной графике, обработке изображений и распознавании образов. Например, очертания
кузова автомобиля могут быть заданы с помощью множества дискретных точек, выбранного на основе технических и эстетических соображений. Для того чтобы ЭВМ могла управлять обрабатывающими инструментами, необходимо располагать математическим описани
й поверхности, проходящей через все заданные точки. Этот
гладко
пример отражает одно из первых применений методов машинной графики в промышленности. Другие возможности применения этих методов связаны с представлением экспериментальных данных для их последующего воспроизведения или автоматического распознавания.
В последнем случае математическое описание контура объекта может
рому объект принадлежит.
содержать информацию о классе, к ко
то
тирова-
ем
42

Точные требования, которым должны удовлетворять воспроизводимые
кривые и поверхности, зависят от конкретной прикладной задачи, однако в целом решение подобных задач базируется на общей методологии, которая и явится предметом нашего рассмотрения в данной и трёх
следующих главах.
С математической точки зрения задачи интерполирования, вероятно, решать легче, однако при решении многих пр
икладных за
дач
аппроксимация оказывается более практичной, так как точные значения обрабатываемых данных искажаются из-за наличия шума. Компромиссным решением при выборе одного из этих методов служит
выделение множества точек-ориентиров, которые могут быть определены пользователем в интерактивном режиме, и проведение кривой
(или поверхности) вблизи этих точек. Ниже мы уделим внимание это-
дхо
му по
ду. Удовлетворительное воспроизведение кривых требует
решения ряда трудных задач из дискретной геометрии, однако обычно
используются частные решения, дающие разнообразные качественные
результаты.
Часто решающее значение при построении кривых по точкам
приобретает выбор математического описания (функции). Хотя много-
н
члены – первое, что приходит здесь в голову, их применение обыч
о
даёт плохое решение. Наибольшее распространение получили методы,
предусматривающие использование кусочно-полиномиальных функций различных типов. При решении задач аппроксимации также следует уделять внимание выбору критерия, характеризующего качество
приближения. Максимальное расстояние точек от кривой или поверхности представляется вполне разумным критерием, однако часто
его использование порождает сложные вычислительные проблемы.
инципе, нео
В пр
бходимо достижение некоторого компромисса между
тем, что интуитивно кажется желательным, и тем, что оказывается
реальным с вычислительной точки зрения.
12.1. ИНТЕРПОЛИРОВАНИЕ С ПОМОЩЬЮ МНОГОЧЛЕНОВ
Пусть (x1, y1), (x2, y2), …, (xn, yn) – последовательность точек, заданных на плоскости, причём x
но непосредственно написать формулу интерполяционного многочлена (n – 1)-й степени:
=
)(
yxp
n
1
2
≠ xj при i ≠ j [3]. Для таких точек мож-
i
−−
))...((
xxxx
n
+
y
−−
121
2
))...((
xxxx
n
+
y
n
31
))...((
−−
xxxx
11
−
n
))...((
−−
xxxx
11
−
nnn
−−−
))...()((
xxxxxx
n
+
−−−
13212
… +
))...()((
xxxxxx
n
. (12.1а)
43

Интерполяционный многочлен можно представить в более стро-
=
гом виде:
n
n
)(
=
yxp
in
∑
∏
1
=
i
≠
ij
)(
−
xx
j
.
(12.1б)
)(
−
xx
ji
Из приведённого выражения следует, что значение yi умножается
на дробь, равную 1 при x – x
, и 0 при остальных значениях х, прини-
i
маемых им в заданных координатах. Частному случаю n = 2 соответствует уравнение линии, соединяющей две точки:
=
)(
−
xx
)(
2
yxp
12
−
−
xx
)(
21
−
)(
xx
y
2
1
.
(12.2)
−
)(
xx
12
Основным недостатком интерполирования с помощью многочленов являются существенные колебания, которые может претерпевать
кривая, построенная между двумя точками. Это обстоятельство иллюстрируется следующим примером.
12.2. МНОГОЧЛЕНЫ БЕЗЬЕ
Этот класс многочленов применяется в интерактивных системах
машинной графики для приближённого решения задач на построение
кривых по точкам [3]. Вместо непосредственного использования точек,
представляющих обрабатываемые данные, для задания многочлена
при построении искомой кривой в интерактивном режиме определяется множество точек-ориентиров. Многочлены при этом задаются не в
явном виде как у = р(х),
а в пар
аметрической форме:
)(tpx
, (12.3а)
x
. (12.3б)
)(tpyy=
Пусть даны три точки: P0, P1 и P2 (рис. 12.2).
Рис. 12.2. Кривая Безье по трём точкам
44

P
P
Рис. 12.3. Кривая Безье по четырём точкам
j
P
строятся в зависимости от заданного отношения (на рис. 12.2
i
t ~ 1/3):
1
)(
tP = (1 – t)P
2
)(
tP = (1 – t) )(
0
2
)(
tP – парабола, вписанная в угол треугольника: P
0
1
tP + t )(
0
зом при 0 ≤ t ≤ 1 кривая
ника: P
0P1P2
2
, )0(
P = P
0
0
1
)(
tP = (1 – t)P
1
1
tP , или )(
1
2
)(
tP всегда располагается внутри треуголь-
0
2
, )1(
P = P
0
0
0
1
2
tP = (1 – t)
0
.
2
+ tP1;
+ tP2;
2
P0 + 2t(1 – t)P1 + t2P2.
. Таким обра-
0P1P2
Рассмотрим ещё один случай – четырёх точек (рис. 12.3). Пусть
заданы четыре точки: P
(на рисунке t ~ 1/3) выбираем точки
ношении делим
Если (x
1
P
0
, y0), (x1, y1), …, (xm, ym) – указанные точки-ориентиры, то
0
, P1, P2 и P3. В зависимости от параметра t
1
P и
1
0
1
1
P
и вписываем кривую Безье
1
2
1
P ,
0
1
P и
1
1
. В аналогичном соот-
2
3
0
соответствующий многочлен Безье определяется как
m
i
mx
∑
i
0
−
m
i
my
∑
i
0
−
i
где
C обозначает число сочетаний из m объектов по i:
m
m
i
C
=
m
−
imi
−
,)1()(
xttCtp
−=
−=
.
(12.4a)
i
imi
−
,)1()(
yttCtp
(12.4б)
i
)!!(!imi
)(
tP
.
45

Эта формула неудобна для проведения вычислений – значение
=
i
C лучше определять, пользуясь рекуррентной формулой:
m
111−
i
i
i
m
m
+=
CCC
.
m
−−
Если кривая строится в трёхмерном пространстве, то необходимо
добавить третью компоненту
m
∑
−
i
i
mz
0
imi
−
.)1()(
zttCtp
−=
i
Уравнения (12.4) часто удобно записывать в векторной форме:
)(
tp
⎤
⎡
x
=
)(
tP
⎢
⎣
⎡
P
=
i
⎢
⎣
, (12.5)
⎥
)(
tp
y
⎦
x
⎤
i
, (12.6)
⎥
y
⎦
i
таким образом,
m
∑
−
i
i
m
0
imi
−
PttCtP
−=
)1()(
. (12.7)
i
На рис. 12.4 приведён один многочлен Безье для m = 2 и два многочлена Безье для m = 3. Последний пример показывает, что размещение точек-ориентиров, обеспечивающее построение кривой определённого вида, требует достаточно высокой квалификации. Это обстоятельство является серьёзным недостатком данного метода.
Из уравнения (12.7) следует, что
)0( PP
,
0
PP =)1( ,
m
т.е. используется диапазон изменения t от 0 до 1.
Кривая многочлена Безье расположена внутри выпуклой оболочки множества точек-ориентиров.
Рис. 12.4. Примеры многочленов Безье, построенных
по трём и четырём точкам-ориентирам
46

12.3. ПАРАМЕТРИЧЕСКИЕ КУБИЧЕСКИЕ КРИВЫЕ
t
≤
≤
=
(
=
(
′
(
=
′
(
[
]
В компьютерной графике в процессе геометрического моделирования сложных «гладких» кривых широко используют параметрические
кубические кривые [1, 3]. Подобными кривыми можно отобразить различные исходные данные. Например, параметрическими кубическими кривыми можно отобразить замкнутую кривую или самопересекающуюся.
10
Пусть
– независимый параметр, такой что
t
. Кубической
параметрической кривой называется кривая, описываемая следующей
системой уравнений:
⎧
()
⎪
()
⎨
⎪
()
⎩
23
+++=
,
dtctbtatx
23
23
xxxx
+++=
,
dtctbtaty
(12.8)
yyyy
+++=
.
dtctbtatz
zzzz
Координаты точек на кривой описываются вектором
[]
вующего касательного вектора в точке. Например, для координаты х
)(),(),( tztytx
, а три производные задают координаты соответст-
dx
dt
2
. (12.9)
ctbta
++= 23
xxx
12.3.1. Форма Эрмита
Широко используется задание параметрической кубической кривой через указание координат её начальной и конечной точек, а также
векторов касательных в них [3]. При подобном способе задания исходных значений для построения кривая принимает форму Эрмита.
Обозначим концевые точки
R . Индексы выбраны таким образом с учётом дальнейшего изло-
и
4
P и 4P , а касательные векторы в них 1R
1
жения.
Рассмотрим способ нахождения коэффициентов
dcba ,,, .
xxxx
Коэффициенты для y и z будут вычисляться подобно. Запишем условие
для построения кривой в форме Эрмита:
()
Перепишем выражение (12.8) для xв векторном виде:
0
)
,
1
xPx1
)
,
0 =
xPx4
1,,,23ttttx =
,
)
a
⎤
⎡
⎥
⎢
b
⎥
⎢
⎥
⎢
c
⎥
⎢
d
⎦
⎣
1
xRx1
. (12.11)
x
)
xRx4
. (12.10)
47

Обозначим вектор строку
[
]
(
)
(
[
=
=
[
=
(
(
[
==′
(
[
==′
×
(
(
=
(
=
()()()(
)
и вектор-столбец ко-
1,,,23tttT =
эффициентов
a
⎤
⎡
⎥
⎢
b
⎥
⎢
=xC
тогда
Из (12.10) следует, что:
Для касательных (12.9)
Отсюда получаем векторно-матричное уравнение:
TCtx = .
x
)
x
1
′
)
)
)
P
⎡
⎢
P
⎢
⎢
R
⎢
R
⎣
]
CPx 1,0,0,00
1
4
⎤
⎡
1
x
⎥
⎢
4
x
⎥
⎢
=
⎥
⎢
1
x
⎥
⎢
4
x
⎣
⎦
Эта система решается относительно
44
матрицы размером
.
−
⎡
⎢
⎢
=
C =
x
⎢
⎢
Здесь
M – эрмитова матрица, hG – геометрический вектор Эр-
h
мита. Подставим выражение
⎣
C для нахождения
x
Аналогично для остальных координат:
,
⎥
⎢
c
⎥
⎢
d
⎦
⎣
x
()
,
= .
x
1122
−−−
0100
0001
4
Ctttx ]0,1,2,3[2=
,⇒
x
]
CRx 0,1,0,00
,
xx
.
]
CRx 0,1,2,31
xx
1000
⎤
⎥
1111
⎥
. (12.12)
C
x
⎥
0100
⎥
0123
⎦
C нахождением обратной
x
P
⎡
⎤
⎤
1
x
⎢
⎥
⎥
P
1233
4
x
⎢
⎥
⎥
⎢
⎥
⎢
⎥
⎦
⎣
()
R
1
x
R
4
x
GM
⎥
hxh
⎥
⎦
)
tx :
,
GTMty =
hyh
]
CPx 1,1,1,11
. (12.13)
)
Выпишем в явном виде формулы для вычисления координат точек кривой Эрмита.
Так как
умножая это выражение справа на G
48
h
, получим:
hx
xx
)
tttttttttTM
−+−+−+−= , то
GTMtx
.
hxh
GTMtz
.
hzh
23232323
],2,32,132[

(
=
()()()(
)
Рис. 12.5. Параметрическая кривая в форме Эрмита
Рис. 12.6. Две кубические кривые Эрмита, соединяющиеся в точке P
)
1
23
4
23
=
GTMtx
hxh
1
23
232132 ttRtttRttPttP
−++−++−++−= . (12.14)
xxxx
4
4
23
Аналогично записываются выражения для y(t) и z(t).
Форму кривой, заданной в форме Эрмита, легко изменять, если учитывать, что направление вектора касательной задаёт начальное направление, а модуль вектора касательной задаёт кривизну в направлении этого
вектора, как показано на рис. 12.5. Чем больше длина вектора, тем сильнее кривая «в
ытягивается» в напр
авлении, задаваемом этим вектором.
При создании сложных кривых в форме Эрмита необходимо придерживаться следующего правила: конечный вектор предыдущей кривой должен совпадать по направлению с вектором начальной кривизны следующей кривой (рис. 12.6).
Геометрические векторы, с помощью которых достигается «гладкая» стыковка двух кривых, следующие:
P
⎡
1
⎢
P
4
⎢
⎢
R
⎢
R
⎣
P
⎡
⎤
⎥
⎥
⎥
1
⎥
4
⎦
⎤
4
⎢
⎥
P
7
⎢
⎥
и
.
⎢
⎥
kR
4
⎢
⎥
R
7
⎣
⎦
49

()(
−==
′
()(
−==
′
(
(
(
12.3.2. Форма Безье
Рассмотрим кривую в форме Безье, которая будет отличаться от
формы Эрмита способом задания исходных данных на построение, а
именно, вместо векторов
им радиус-векторы)
полняются условия:
Кривая в форме Безье может быть построена через форму Эрмита:
=
G =
где
G – геометрический вектор Безье.
b
Подставляя это в выражение для
лучаем соотношения:
()
()
()
Заметим, что матрица вида
MMM
==
bhbh
R и 4R вводятся точки (и соответствующие
1
P и 3P , как показано на рис. 12.7, такие, что вы-
2
и
30 PPRP
P
⎡
⎤
⎡
1
⎢
⎥
⎢
P
4
⎢
⎥
⎢
=
⎢
⎥
⎢
R
−
1
⎢
⎥
⎢
R
4
⎣
⎣
⎦
)()()
)()()
3
)()()
⎡
⎢
⎢
⎢
−
⎢
⎣
−−
−
)
121
P
0001
⎡
⎤
⎤
1
⎢
⎥
⎥
P
1000
2
⎢
⎥
⎥
⎢
⎥
⎥
P
0033
3
⎢
⎥
⎥
−
3
1
3
1
1
1331
0363
0033
0001
P
3300
4
⎦
⎣
⎦
()
tx
кривой формы Эрмита, по-
2
2
2
2
2
2
⎤
⎥
⎥
называется матрицей Безье.
⎥
⎥
⎦
31 PPRP
GM
bhbh
2
2
2
13131 +−+−+−=== .
, (12.15)
)
344
3
3
3
.
3
PtPttPttPtGMTMGTMtx +−+−+−===
4
xxxxbxhbhhxh
3
PtPttPttPtGMTMGTMty +−+−+−===
4
yyyybyhbhhyh
3
PtPttPttPtGMTMGTMtz
zzzzbzhbhhzh
4
;13131
;13131
Рис. 12.7. Параметрическая кривая в форме Безье
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
