Добавил:
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. ТРЁХМЕРНОЕ МОДЕЛИРОВАНИЕ
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ

В компьютерной графике объединение нескольких 2D-преобразований называется композиционным двумерных преобразованием.
Например, необходимо повернуть двумерный объект (рис. 3.4) на
угол α градусов относительно точки P
, y1). И пусть точка P1 при-
1(x1
надлежит объекту. Подобные преобразования выполняются за три шага.
1 шаг. Двумерный перенос объекта (рис. 3.5), при котором объект
совместится с началом системы координат точкой P
xxX
−=
⎧
⎨
⎩
;
1
yyY
−=
.
1
:
1
2 шаг. Двумерный поворот на α градусов объекта (рис. 3.6) относительно начала координат:
′
⎧
⎨
′
⎩
α−α=
);sin()cos(
YXX
YXY
).cos()sin(
α+α=
3 шаг. Двумерный перенос объекта (рис. 3.7) в исходное положение согласно координат точки P
точку P
c точкой (x1, y1).
1
2D-объект
, т.е. совмещаем переносом объекта
1
′
′
+
=
⎧
⎨
′
=
⎩
;
xXx
1
′
+
.
yYy
1
2D-объект
Рис. 3.4. 2D-объект Рис. 3.5. Перенос объекта
в начало координат
2D-объект
2D-объект
Рис. 3.6. Объект повернут
на угол α
Рис. 3.7. Перемещение 2D-
объекта в позицию P
1
11

Если математически объединить проведённые преобразования, то
′
()()(
)
′
можем получить следующую систему уравнений:
+α−−α−=
;)sin()()cos()(
⎧
⎨
′
В матричной форме подобная операция имеет вид
[]
1''
yx
⎩
⎡
⎢
=
⎢
⎢
⎣
001
⎤
⎡
⎥
⎢
010
⎥
⎢
⎥
−−
⎢
1
⎦
⎣
αα−αα⋅
⎡
⎢
=
⎢
⎢
⎣
xyyxxx
111
+α−+α−=
.)cos()()sin()(
yyyxxy
111
0)sin()cos(
⎤
⎡
⎥
⎢
0)cos()sin(
⋅
⎥
⎢
⎥
⎢
100
⎦
⎣
αα
αα−
xyyx
1111
001
⎤
⎥
010
=
⎥
⎥
1
yxyx
⎦
1111
0)sin()cos(
⎤
⎥
.
0)cos()sin(
⎥
⎥
α⋅−α−⋅α⋅+α−⋅
1)sin())cos((1)sin())cos((1
⎦
Для упрощения записи такой композиционной операции используют символьное выражение в виде:
.
,, yxTRyxTPP ⋅α⋅−−⋅=
1111
4. ТРЁХМЕРНЫЕ АФФИННЫЕ ПРЕОБРАЗОВАНИЯ
Трёхмерные аффинные преобразования 3D-объектов [5] можем
представить, как:
где A, B, …, N – константы; x, y, z – старые координаты точки до преобразования; x′, y′, z′ – новые координаты точки после преобразований.
Рассмотрим основные 3D-преобразования геометрического объекта:
1.
Перемещение трёхмерного объекта на Dx, Dy, Dz значения по
осям X, Y и Z относительно начала системы координат записывается как:
2. Масштабирование трёхмерного объекта в S
тельно начала системы координат имеет вид:
12
3D-ОБЪЕКТОВ
′
⎧
⎪
′
⎨
⎪
′
⎩
′
+=
;
⎧
⎪
⎨
⎪
⎩
⎧
⎪
⎨
⎪
⎩
Dxxx
′
+=
;
Dyyy
′
+=
.
Dzzz
′
=
;
xSx
x
=
;
ySy'
y
=
.
zSz'
z
+++=
;
DzCyBxAx
+++=
;
HzGyFxEy
+++=
,
NzMyLxKz
, Sy, Sz раз относи-
x

3. Поворот трёхмерного объекта вокруг оси Z на угол α (рис. 4.1)
описывается системой уравнений:
α−α=
);sin()cos('
⎧
⎪
⎨
⎪
=
zz
⎩
zxx
α+α=
yxy
);cos()sin('
.'
4. Поворот трёхмерного объекта вокруг оси Y на угол α (рис. 4.2)
описывается уравнениями:
′
⎧
⎪
′
=
;
yy
⎨
⎪
′
⎩
α−α=
zxx
;)sin()cos(
α+α=
zxz
.)cos()sin(
Рис. 4.1. Поворот вокруг оси Z на угол α
Рис. 4.2. Поворот вокруг оси Y на угол α
13

Рис. 4.3. Поворот вокруг оси X на угол α
×
(
(
≠
(
′
(
′
5. Поворот трёхмерного объекта вокруг оси
(рис. 4.3) описывается системой уравнений:
xx'
;
=
⎧
⎪
⎨
⎪
В однородных координатах трёхмерные преобразования представляются в виде матриц размером
трёхмерной точки
Однородные координаты легко преобразуются в декартовые путём
деления первых трёх параметров точки на w. Значение w равно 1. В однородных координатах матрицы основных преобразований имеют вид:
Перемещение –
1.
ной форме записывается как
координат точки; P – старое значение координат трёхмерного объекта.
Масштабирование –
2.
вольной форме преобразование имеет вид:
⎩
)
zyx ,, записываются как
zyy'
zαyz'
=
),,(
DzDyDxT
;)(sin)(cos
α−α=
.)cos()sin(
α+=
. В таком случае координаты
44
⎡
⎢
⎢
⎢
⎢
⎣
SzSySxS
),,(
=
DzDyDx
)
, где P′ – новое значение
DzDyDxPTP ,,=
Sx
⎡
⎢
Sy
⎢
⎢
⎢
⎣
X на угол α
)
wwzwywx ,,, , где
0001
⎤
⎥
0010
⎥
. В символь-
⎥
0100
⎥
1
⎦
000
⎤
⎥
000
⎥
⎥
Sz
000
⎥
1000
⎦
)
SzSySxPSP ,,=
0
w
. В сим-
, где P′ –
.
14

новое значение координат точки; P – старое значение координат трёхмерного объекта.
3. Поворот относительно оси
⎡
⎢
⎢
)(Rx
=α
⎢
⎢
4. Поворот относительно оси Z –
⎣
⎡
⎢
⎢
)(Rz
=α
⎢
⎢
5. Поворот относительно оси Y –
⎣
⎡
⎢
⎢
)(Ry
=α
⎢
⎢
⎣
X –
0001
⎤
⎥
0)sin()cos(0
αα
⎥
.
⎥
0)cos()sin(0
αα−
⎥
1000
⎦
αα
αα−
00)sin()cos(
⎤
⎥
00)cos()sin(
⎥
.
⎥
0100
⎥
1000
⎦
0)sin(0)cos(
α−α
⎤
⎥
0010
⎥
.
⎥
0)cos(0)sin(
αα
⎥
1000
⎦
5. ПРОЕЦИРОВАНИЕ ТРЁХМЕРНЫХ ОБЪЕКТОВ
Главной проблемой визуализации трёхмерных объектов на двумерной плоскости растра экрана является наличие третьей координаты z. Для сведения трёх координат в две для показа объёмного объекта
на экране компьютера используют эффект проецирования [1]. Проекции создаются с помощью лучей – проекторов, которые выходят из
точки трёхмерного пространства, где расположен трёхмерный объект.
Такую точку называют центром про
каждую точку трёхмерного объекта и, затем, пересекают проекционную плоскость, образуя «след» в виде проекции.
Различают два вида геометрических проекций: центральные и параллельные. Если центр проекции задан значением координат точки,
т.е. находится на конкретном расстоянии от проекционной плоскости,
то получается центральная проекция. Если же центр про
дится в бесконечности, то полученная проекции называется параллельной (рис. 5.1).
екции. Проекторы проходят через
екции нахо-
15

Рис. 5.1. Центральная и параллельная проекции
Центральная проекция отрезков параллельный прямых, которые
не параллельны проекционной плоскости, образует непараллельные
проекции, мысленное продолжение которых приводит к их пересечению в точке, называемой точкой схода. Если точка схода будет получена от проекций совокупности параллельных прямых одной из осей
мировой системы координат, то такая точка называется главной. На
практике применяют центральные про
екции с одной, двумя или тремя
главными точками схода (рис. 5.2). Выбор количества главных точек
схода определяется чисто эстетическими соображениями.
Из всех видов проекций простейшей является параллельная прямоугольная проекция. В ней возможно совмещение изображений видов сверху, спереди и сбоку. В зависимости от ориентации направления проецирования и нормали к проекционной пло
скости параллель-
ные проекции бывают ортографические или ортогональные. В первом
16
Рис. 5.2. Пример проекции с одной главной точкой схода

случае направления совпадают, и косоугольные, в которых они не па-
z
раллельны. В ортографических проекциях положение осей системы
координат объекта относительно проекционной плоскости определяют
аксонометрические или изометрические проекции. В изометрических
проекциях оси мировых систем координат, где расположен объект
проецирования, составляют одинаковые углы с проекционной плоскостью. В аксонометрических проекциях эти углы разные.
Получаем
ый эффект от центрального проецирования 3D-объекта
аналогичен эффекту, который получается зрительной системой человека. При этом наблюдается эффект перспективного укорачивания,
когда размер проекции объекта изменяется обратно пропорционально
расстоянию центра проекции до точки проецирования объекта.
В параллельных проекциях параллельные прямые всегда остают-
ся таковыми, за счёт чего в проекциях отсутствует перспективное уко-
чивание, что придаёт изображению трёхмерного объекта менее реа-
ра
листичный вид.
При математическом моделировании центральной проекции различают две модели в зависимости от расположения проекционной
плоскости относительно системы координат:
проекционная плоскость перпендикулярна оси Z и совпадает с
−
плоскостью Z = d (рис. 5.3, вариант 1);
проекционная плоскость перпендикулярна оси Z и совпадает с
−
плоскостью Z = 0 (рис. 5.3, вариант 2).
В первом случае точка P трёхмерного объекта проецируется на
экранную плоскость как точка P′. Расстояние от начала координат (камеры, наблюдателя) до проекционной плоскости равно d. Определим
координаты точки P′ на экране. Обозначим их как x′ и y′. Из по
тр
еугольников
и
0zyPP
справедливы соотношения
dOy
p
y
y
p
d
z
∗
y
dy
=⇒=
p
z
(5.1а)
.,
добия
Аналогично для x:
∗
x
dx
.
=
p
(5.1б)
Если переместить проекционную плоскость в плоскость z = 0,
а точку проецирования на расстояние d по оси Z, как показано
и
на рис. 5.3 (вариант 2), то формулы для
x
p
x
=
+
;
)/(1 dz
x
p
y
=
p
примут вид:
y
p
y
+
.
(5.2)
)/(1 dz
17

Вариант 1
Вариант 2
Рис. 5.3. Центральная проекция: варианты 1 и 2
Определение координат проекции по формулам 5.2 удобно при
необходимости простого приближения или отдаления камеры наблюдения до проекционной плоскости. Формулы 5.1 требуют меньше времени для вычислений за счёт отсутствия операции сложения, но появление значений z = 0 приводит к невозможности вычисления проекции.
При косоугольной проекции (рис. 5.4) проекторы не перпендикулярны проекционной плоскости. На практике испо
кабинетную косоугольную проекции. В первом случае угол между
проектором и проекционной плоскостью составляет 45°, а для каби-
нетной 63,4°. Формулы вычисления косоугольной проекции произвольного 3D-объекта основываются на формулах вычисления косо-
угольной проекции единичного куба, где длина ребра ровна 1.
18
льзуют военную и

Рис. 5.4. Косоугольная параллельная проекция единичного куба
(
)
α+=
Из рисунка 5.4 видно, что проекцией точки P(0, 0, 1), расположенной на задней стороне единичного куба, является точка с координатами
принадлежащая плоскости XY.
,)sin(),cos( αα′LLP
Математическое описание косоугольной параллельной проекции
произвольного трёхмерного объекта имеет вид:
p
Lzxx
p
));cos((
)).sin((α+=Lzyy
Для военной проекции L = 1, а для кабинетной проекции L = 0,5.
На практике угол α выбирают 30° или 45°.
6. РАСТРОВОЕ ТЕКСТУРИРОВАНИЕ
Для реалистичного изображения 3D-объектов необходимо ис-
пользовать текстурирование полигональных поверхностей [5]. Рассмотрим процесс текстурирования полигона. Для процесса текстурирования будем считать, что полигон трёхмерного объекта представлен
треугольником. В качестве изображения текстуры будем рассматривать двумерный массив визуальных атрибутов точек. При текстурировании полигона необходимо последний выводить в растр своими внут-
нними точками (x, y), для которых требуется найти их атрибуты из
ре
соответствующих точек текстуры по координатам (x
Преобразование координат точек полигона (x, y) в (x
быть, например, аффинное:
;
CByAxx
т
т
++=
,
FEyDxy
++=
где коэффициенты А, В, C, D, E и F – константы.
, yт).
т
, yт) может
т
19

Аффинное преобразование координат точек полигона к коорди-
+
=
++=
+
+
−
+−+−=
−
+−+−=
натам текстуры возможно, если привязать текстуру к грани полигона
по трём её опорным точкам (см. рис. 6.1). Подобная связь текстуры с
полигоном соответствует уравнениям:
;
CByAxx
т
i
т
i
+
ii
,
FEyDxy
++=
ii
где i = 1, 2, 3 – номера вершин полигона .
Решив систему линейных уравнений, получим значения коэффициентов A, B, …, F. Для этого воспользуемся известными значениями
координат (x
, yтi) и (xi, yi). Система уравнений делится на две незави-
тi
симые системы третьего порядка. Для упрощения дальнейшего материала заменим x
на Xi, а yтi на Yi:
тi
,
CByAxX
111
++=
222
++=
333
=
,
CByAxX
,
CByAxX
,
FEyDxY
111
,
FEyDxY
++=
222
.
FEyDxY
++=
333
Решить систему уравнений можно через способ, основанный на
вычислении определителей. Конечный вариант записи математических
выражений для определения коэффициентов первой системы имеет
вид:
=
ByAxXC
−−=
.111
det;/))()()((det/det
yyXyyXyyXAA
213132321
det;/))()()((det/det
XXxXXxXXxBB
−+−+−==
213132321
Аналогичным образом решаем правую систему уравнений для коэффициентов D, E и F:
=
−+−+−==
EyDxYF
−−=
.111
det;/))()()((det/det
yyYyyYyyYDD
213132321
det;/))()()((det/det
YYxYYxYYxEE
213132321
Рис. 6.1. Наложение текстуры на грань объекта
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
