Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика и геометрическое моделирование в информационных системах. Учебное пособие для бакалавров направлений подготовки 230100 «Информати.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
В компьютерной графике объединение нескольких 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
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]