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

Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Тамбовский государственный технический университет»
С. А. ВАСИЛЬЕВ, И. В. МИЛОВАНОВ
КОМПЬЮТЕРНАЯ ГРАФИКА И
ГЕОМЕТРИЧЕСКОЕ МОДЕЛИРОВАНИЕ
В ИНФОРМАЦИОННЫХ СИСТЕМАХ
Утверждено Учёным советом университета
в качестве учебного пособия для бакалавров направлений подготовки
230100 «Информатика и вычислительная техника»,
230400 «Информационные системы и технологии»
очной формы обучения
Учебное электронное издание
комплексного распространения
Тамбов
Издательство ФГБОУ ВПО «ТГТУ»
2015
1

УДК 004.92(075.8)
Á973-018.4я73
ББК
В191
Рецензенты:
Доктор технических наук, профессор заведующий кафедрой
«Компьютерное и математическое моделирование»
ФГБОУ ВПО «ТГУ им. Г. Р. Державина»
А. А. Арзамасцев
Доктор технических наук, профессор заведующий кафедрой
«Компьютерно-интегрированные системы в машиностроении»
ФГБОУ ВПО «ТГТУ»
В. Н. Немтинов
Васильев, С. А.
В191 Компьютерная графика и геометрическое моделирование в
информационных системах [Электронный ресурс] : учебное
пособие для бакалавров направлений подготовки 230100 «Информатика и вычислительная техника», 230400 «Информационные системы и технологии» очной формы обучения / С. А. Васильев, И. В. Милованов. – Тамбов : Изд-во ФГБОУ ВПО
«ТГТУ», 2015. – 1 электрон. опт. диск (CD-ROM). – Системные
ования : ПК не ниже класса Pentiu
треб
38,2 Mb RAM ; Windows 95/98/XP ; мышь. –
m II ; CD-ROM-дисковод
Загл. с экрана.
ISBN 978-5-8265-1432-0.
Рассмотрены основные алгоритмы растровой компьютерной графики и способы построения базовых элементов геометрического моделирования.
Предназначено для бакалавров направлений подготовки 230100
«Информатика и вычислительная техника», 230400 «Информационные
системы и технологии» очной формы обучения, изучающих дисциплины «Компьютерная графика» и «Геометрическое моделирование».
УДК 004.92(075.8)
Á973-018.4я73
ББК
Все права на размножение и распространение в любой форме остаются за разработчиком.
Нелегальное копирование и использование данного продукта запрещено.
ISBN 978-5-8265-1432-0
2
© Федеральное государственное бюджетное
образовательное учреждение высшего
профессионального образования
«Тамбовский государственный технический
университет» (ФГБОУ ВПО «ТГТУ»), 2015

ВВЕДЕНИЕ
Главная функция компьютера – логическая и арифметическая обработка информации. Большую часть современный компьютер обрабатывает информацию, связанную с изображением графики. Здесь следует выделить три основных направления: компьютерная графика,
обработка изображений и распознавание образов.
На сегодняшний день главенствующую роль в устройствах вывода графической информации занимают устройства с растровой организацией. Это к
асается и печатающи
ранного вывода данных, где в качестве растра имеется матрица ячеек
(пикселей). Совокупность пикселей различных значений по цвету
формирует изображение. Для формирования растровых изображений и
их изучения существует специальная наука – компьютерная графика.
В настоящее время компьютерная графика и геометрическое моделирование используется почти во всех научных и ин
тельностях для восприятия объектов созидания. Современный специалист в области информационных технологий обязан знать их основы и применять знания в области визуализации в своей научной
или инженерной деятельности. Компьютерная графика и геометрическое моделирование органично вторгаются в бизнес, медицину, рекламу и ин
дустрию р
азвлечений.
Материалы данного пособия базируются на реальных курсах дисциплин «Компьютерная графика» и «Геометрическое моделирование»,
читаемых в Тамбовском государственном техническом университете
на кафедре САПР.
В основе пособия лежит обобщение опубликованных в открытой
печати классических материалов по компьютерной графике и геометрическому моделированию таких авторов, как: Фоли Дж., вэн Дэм А [1
рс Д. [2], Павлидис Т. [3], Гардан И. [4] и Порев В. Н. [5]. Дан-
Родже
ные работы были опубликованы в различные времена, начиная с 1985
и заканчивая 2006 годом. На сегодняшний день современная индустрия компьютерной визуализации базируется на алгоритмах вышеприведённых авторов.
Пособие в целом может быть использовано для изучения основных тем компьютерной графики и инструмента
моделирования.
х устройств, а также устройств эк-
ж
енерных дея-
еометрического
рия г
],
3

1. АЛГОРИТМ БРЕЗЕНХЕМА ДЛЯ ПРЕОБРАЗОВАНИЯ
ОТРЕЗКОВ ПРЯМЫХ ИЗ ВЕКТОРНОЙ ФОРМЫ
Основная цель любого алгоритма развёртки отрезка из векторной
формы в растровую сводится к определению координат пикселей, лежащих вблизи реального отрезка на двумерной растровой сетке. Для
выполнения подобной задачи предположим, что начальная и конечная
точки отрезка имеют целочисленные координаты. Наиболее простым
способом перевода отрезка в растровую форму считается алгоритм,
когда пошагово увеличивается значение x, вычисляетс
итоге, подсвечивается пиксель в точке (x, ROUND (y)). Главным не-
достатком данного алгоритма считается вычисление произведения mx,
что требует процессорного времени компьютера. Более того, все арифметические операции будут выполняться с вещественными числами,
а во время непосредственного вывода пикселей в растр будет осу
ляться компь
ютерная операция округления вещественных чисел до целого значения – ROUND. Вышеперечисленные недостатки представленного алгоритма не позволяют его использовать с высокой эффективностью при формировании растровых изображений с большим количеством отрезков прямых, например, полигональная сетка в движении.
Одним из способов повышения эффективности вышеприведённого алгоритма является исключение операции умножения mx. При вн
мательном изучении
циент m = dy/dx вычисляется как m = dy, т.е. изменение x на 1 приводит
к изменению y на m (тангенс угла наклона отрезка). Следовательно,
если
+ ii
, то
11+=
xx
ждая новая пара значений точки растра (x и y) определяется, исходя из
значений этих величин на предыдущем шаге. Если m > 1, то измене-
ние значения dx на 1 будет приводить к изменению dy > 1. При таких
углах наклона отрезка прямой в алгоритме растрового представления
отрезка x и y следует поменять ролями. Изм
будет увеличиваться на dx = dy/m = 1/m. Такой алгоритм растрового
представления отрезка прямой называется простым пошаговым алго-
ритмом [1].
За простотой алгоритма и устранения операции умножения mx
опять скрываются некоторые недостатки, присущие самому первому
алгоритму из этой тематики. Остались вещественные значения величин y и m и оп
ерация окр
Для устранения вышеперечисленных недостатков применяется
целочисленный алгоритм Брезенхема [1] для построения отрезков
прямых в растровой форме.
4
В РАСТРОВУЮ
mx + b и, в
я y =
ществ-
и-
алгоритма было замечено, что при dx = 1 коэффи-
для всех точек
myy
ii+=+1
еняя на еди
угления ROUND при выводе пикселей в растр.
отрезка. Ка-
),(iiyx
ничный шаг y, x

Пусть требуется построить отрезок прямой из начальной точки
−
=
(
)
, Y1) в конечную точку (X2, Y2). И тангенс угла наклона отрезка на-
(X
1
ходится в диапазоне 0 – 1. Фрагмент отрезка и растрового его представления представлен на рис. 1.1. Для формирования в растровой форме
отрезка будем использовать значения управляющей переменной d
значение которой будет вычисляться на каждом шаге построения отрезка. Числовое значение d
прямой пропорционально разности значе-
i
ний расстояний s и t отрезка прямой до ближайших растровых пикселей по вертикали. На i-м шаге построения отрезка прямой, когда предыдущий пиксель P
точек T
S
или Si будет ближе расположена к прямой. Если s < t, то точка
i
наиболее близко расположена к векторному изображению отрезка, в
i
противном случае выбираем точку T
уже известен, требуется определить, какая из
i – 1
.
i
Работа алгоритма Брезенхема начинается с определения начального значения управляющей переменной d
dy = Y
– Y1 и dx = X2 – X1. При каждом изменении значения 1
2
определяем знак (!) управляющей переменной
а) если
следующего шага
б) если
дующего шага
> 0, то выбираем пиксель Ti, тогда
d
i
dxdydd
−+=+2
ii
1
< 0, то выбираем пиксель S
d
i
.
dydd
ii21+=+
;
, как dxdyd
i
d
i
, тогда
i
2
1
, где
xx
1+=−ii
:
и для
11+=
yy
−ii
и для сле-
yy
1−=ii
,
i
Рис. 1.1. Иллюстрация отрезка прямой
5

Рассмотрим пример построения отрезка прямой из точки
(5, 8) в точку (9, 11). Для каждого
шага изменения x
были вычисле-
i
ны значения управляющей переменной
:id 2, 0, –2, 4 и 2. По по-
лученным данным был построен
отрезок прямой в растровой форме, внешний вид которого представлен на рис. 1.2.
Рис. 1.2. Отрезок прямой в растре
Подытоживая алгоритм Брезенхема для построения отрезков
прямых в растровой форме, можно
отметить, что для его реализации требуются только целые числа и минимальное количество арифметических целочисленных операций процессора ЭВМ, таких как вы
читание, слож
ение, и сдвиг влево (для осуществления операции умножения на два). Такая вычислительная организация алгоритма хорошо сказывается на его быстродействии построения отрезка прямой, особенно когда требуется строить в режиме
анимации сложные полигональные сетки 3D-объектов.
2. АЛГОРИТМ БРЕЗЕНХЕМА
ДЛЯ РАСТРОВОЙ РАЗВЁРТКИ ОКРУЖНОСТИ
Обзор литературы [1] показал, что существует несколько простых
способов построения окружности в растровой форме. Наиболее простой способ построения окружности в растровой сетке это способ
формирования графика уравнения окружности x
стоты построения рассмотрим окружность с центром в начале системы
координат. Из уравнения окружности
выделим y, как
посмотреть на такую окружность с
точки зрения растрового представления, то можно заметить симметричность её частей по отношению к осям
X и Y. Поэтому на практике строить
окружность по этому уравнению
Рис. 2.1. Четвёртая
часть окружности
можно более эффективно, если ограничиться вычислением, лишь дуги в
1/4 окружности, а все остальное выполнит симметрия.
2
+ y2 = R2. Для про-
22
xry −±=
. Если
6

Для изображения четвёртой части окружности достаточно определить положительное значение y
, который варьируется в диапазоне значений [0 – R] с шагом 1. Предло-
x
i
для изменяющегося аргумента функции
i
женный способ построения окружности работоспособен, но не очень
эффективен с точки зрения работы центрально процессора ЭВМ, так
как в него входят долго исполняющиеся операции умножения и извлечения квадратного корня. Кроме этого, построенная окружность по вышеприведённому алгоритму не обладает высокими ху
аметрами. А именно, при значениях y, близких к значению R, в рас-
пар
дожественными
тровом изображении окружности можно заметить незаполненные промежутки (рис. 2.1), так как в этой окрестности на единичное изменение
x происходит скачкообразное, больше чем на значение 1, изменение y.
Брезенхем [1] предложил пошаговый алгоритм построения дуг 1/8
окружности, свободный от недостатков, присущих методу по
жности по его уравнению.
окру
строения
Алгоритм Брезенхема рассматривается для случая обхода лишь
дуги окружности в 45° от x = 0 до
2Rx = . Для формирования пол-
ной окружности используется восьмисторонняя симметрия (рис. 2.2).
Рис. 2.2. Восьмисторонняя симметрия алгоритма
Рис. 2.3. Возможные пиксели окружности Брезенхема
7

Идея алгоритма подобна построению отрезков прямых в растро-
++=
′
вой форме. Точки окружности (дуги) строятся в зависимости от знака
управляющей переменной d
В данном алгоритме x
нении x
выбирается точка Pi(xi, yi) наиболее близко расположенная к
i
, где i – шаг изменения значения xi.
i
изменяется с шагом 1. При каждом изме-
i
истинной окружности. Расстояние до истинной окружности опреде-
222
)()( RyxPD
лятся ошибкой
−+= . Чем меньше значение этой
iii
ошибки, тем ближе к окружности находится точка растровой формы
окружности, т.е. значение
минимизируется на каждом шаге.
)(iPD
Предположим, что на (i – 1)-м шаге работы алгоритма точка
, y
P
i – 1(xi – 1
определим, какая из двух точек T
ности x
i – 1
а) если d
го шага d
б) если d
= di + 4(x
d
i + 1
) была выбрана как ближайшая к окружности. Теперь
i – 1
или Si расположена ближе к окруж-
i
+ 1:
< 0, то выберем точку Si (X
i
= di + 4x
i + 1
≥ 0, то Ti (X
i
i – 1
– y
i – 1
i – 1
+ 6;
i – 1
) + 10.
+ 1, Y
+ 1, Y
i – 1
– 1) и для следующего шага
i – 1
) и для следующе-
i – 1
На начальном этапе работы алгоритма управляющая переменная
определяется как d1 = 3 – 2R.
d
1
В данном алгоритме так же, как и в алгоритме Брезенхема для
растрового построения отрезков прямых, не используются вещественные числа и операции округления при формировании координат вывода пикселей в растр.
3. АФФИННЫЕ ПРЕОБРАЗОВАНИЯ
Неотъемлемой частью интерактивной компьютерной графики являются различные геометрические преобразования как двумерных, так
и трёхмерных объектов, типа вращение, масштабирование и перенос.
Для 2D-объектов на плоскости геометрические преобразования
описываются аффинными преобразованиями, которые могут быть
представлены следующими соотношениями [3]:
где A, B, …, F – константы; x, y – значения точки до преобразования;
yx′′, – новые координаты точек 2D-объектов.
Остановимся на основных двумерных преобразованиях для 2D-
объектов.
Двумерное перемещение (сдвиг) объекта на величину D
на D
y
8
НАД ДВУМЕРНЫМИ ОБЪЕКТАМИ
CByAxx
′
по оси Y (рис. 3.1) описывается следующей системой уравнений:
,;FEyDxy
++=
по оси X и
x

′
=
Dxx
+=
⎧
⎨
⎩
;
x
.Dyy'
+=
y
В однородных координатах [3] операция двумерного перемещения имеет вид
′′
[]
yx
1
⎡
[]
или P′ = PT (Dx, Dy), где
⎢
yx
1
⋅=
⎢
⎢
⎣
⎤
001
⎥
010
⎥
⎥
DD
1
yx
⎦
Рис. 3.1. Перемещение
⎡
⎢
DDT
=
),(
yx
⎢
⎢
DD
⎣
yx
⎤
001
⎥
.
010
⎥
⎥
1
⎦
Благодаря однородным координатам все три преобразования
(сдвиг, масштабирование и поворот) над 2D-объектом можно реализо-
вать с помощью операции умножения вектора на матрицу, что поднимает результативность работы графической программы, использующей подобные геометрические преобразования.
Точка P(x, y) записывается в однородных координатах, как
P(xW, yW, W) для любого масштабного множителя W ≠ 0. Если точка
родных координатах P(X, Y, W), то можно найти её дву-
задана в одн
о
мерные декартовые координаты, как x = X/W и y = Y/W. На практике
масштабный коэффициент W всегда равен 1, поэтому операция деления не требуется. Для понимания сути однородных координат можно
представить, как вло
жение пpомасштабиpованно
й с коэффициентом W
двумерной плоскости в плоскость z = W (здесь z = 1) в трёхмерном
пространстве.
Рис. 3.2. Масштабирование
9

Двумерное масштабирование геометрического объекта в Sx раз по
[
′
′
[
′
[
оси X и в S
или P′ = P ⋅ S(Sx, Sy), где
раз по оси Y (рис. 3.2) определяется системой уравнений:
y
′
;
=
Sxx
⎧
⎨
⎩
x
′
.
=
Syy
y
В однородных координатах двумерное масштабирование имеет вид
S
⎡
x
]
1yx
=
⎡
⎢
=
),(
SSS
yx
⎢
⎢
⎣
⎢
]
1yx ⋅
⎢
⎢
⎣
S
x
00
00
S
y
100
00
⎤
⎥
00
S
y
⎥
⎥
100
⎦
⎤
⎥
.
⎥
⎥
⎦
Двумерный поворот графического объекта вокруг точки начала
координат (0, 0) на угол α (рис. 3.3) определяется следующей системой
уравнений:
′
⎧
⎨
′
⎩
В однородных координатах двумерный поворот имеет вид
⎡
′
[]
=
1yx
⎢
]
⋅
1yx
⎢
⎢
⎣
⎡
⎢
Или P′ = P R(α), где
)(R
⎢
⎢
⎣
α−α=
);sin()cos(
yxx
yxy
α+α=
).cos()sin(
αα
0)sin()cos(
⎤
⎥
αα−
0)cos()sin(
.
⎥
⎥
100
⎦
0)sin()cos(
⎤
⎥
αα−αα=α
0)cos()sin(
.
⎥
⎥
100
⎦
Рис. 3.3. Поворот
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
