
- •1. Цвет в компьютерной графике 13
- •2. Геометрические преобразования 20
- •3. Представление геометрической информации 37
- •4. Удаление невидимых поверхностей и линий 45
- •5. Проекции пространственных сцен 55
- •5.4. Вопросы и упражнения 67
- •10.6 Вопросы и упражнения 108
- •12.4 Вопросы и упражнения 118
- •Введение Предмет и область применения компьютерной графики
- •1. Отображение информации
- •2. Проектирование
- •3. Моделирование
- •4. Графический пользовательский интерфейс
- •Краткая история
- •Технические средства поддержки компьютерной графики
- •Вопросы и упражнения
- •1. Цвет в компьютерной графике
- •1.1. О природе света и цвета
- •1.2. Цветовой график мко
- •1.3. Цветовые модели rgb и cmy
- •1.4. Другие цветовые модели
- •1.5. Вопросы и упражнения
- •2. Геометрические преобразования
- •2.1. Системы координат и векторы на плоскости и в трёхмерном пространстве
- •2.2. Уравнения прямой и плоскости
- •2.3. Аналитическое представление кривых и поверхностей
- •2.4. Пересечение луча с плоскостью и сферой
- •2.5. Интерполяция функций одной и двух переменных
- •2.6. Матрицы
- •2.7. Геометрические преобразования (перенос, масштабирование, вращение)
- •2.8. Переход в другую систему координат
- •2.9. Задача вращения относительно произвольной оси
- •2.10. Вопросы и упражнения
- •3. Представление геометрической информации
- •3.1. Геометрические примитивы
- •Полигональные модели
- •Воксельные модели
- •Поверхности свободных форм (функциональные модели)
- •3.2. Системы координат: мировая, объектная, наблюдателя и экранная
- •3.3. Однородные координаты
- •3.4. Вопросы и упражнения
- •4. Удаление невидимых поверхностей и линий
- •4.1. Алгоритм Робертса
- •4.2. Метод z-буфера
- •4.3. Методы приоритетов (художника, плавающего горизонта)
- •4.4. Алгоритмы построчного сканирования для криволинейных поверхностей
- •4.5. Метод двоичного разбиения пространства
- •4.6. Метод трассировки лучей
- •4.7. Вопросы и упражнения
- •5. Проекции пространственных сцен
- •5.1. Основные типы проекций
- •Параллельные проекции
- •Центральные проекции
- •5.2. Математический аппарат
- •Ортогональные проекции
- •Косоугольные проекции
- •Центральные проекции
- •5.3. Специальные картографические проекции. Экзотические проекции земной сферы
- •Стереографическая проекция
- •Гномоническая проекция
- •Ортографическая проекция
- •Проекции на цилиндр
- •Проекция Меркатора
- •Проекции на многогранник
- •Необычные проекции
- •5.4. Вопросы и упражнения
- •6. Растровое преобразование графических примитивов
- •6.1. Алгоритм Брезенхема растровой дискретизации отрезка
- •6.2. Алгоритмы Брезенхема растровой дискретизации окружности и эллипса
- •6.3. Алгоритмы заполнения областей
- •6.4. Вопросы и упражнения
- •7. Закрашивание. Рендеринг полигональных моделей
- •7.1. Простая модель освещения
- •7.2. Закраска граней Плоское закрашивание
- •Закраска методом Гуро
- •Закраска методом Фонга
- •7.3. Более сложные модели освещения
- •7.4. Устранение ступенчатости (антиэлайзинг)
- •7.5. Вопросы и упражнения
- •8. Визуализация пространственных реалистических сцен
- •8.1. Трехмерный графический конвейер
- •8.2. Свето-теневой анализ
- •8.3. Глобальная модель освещения с трассировкой лучей
- •8.4. Текстуры
- •8.5. Вопросы и упражнения
- •9. Введение в вычислительную геометрию
- •9.1 Вычислительная сложность алгоритмов
- •9.2 Основные геометрические объекты
- •9.3 Вопросы и упражнения
- •10. Триангуляция Делоне и диаграмма Вороного
- •10.1 Введение
- •10.2 Разбиение Делоне
- •10.3 Разбиение Вороного
- •Многогранник Вороного
- •Теорема о разбиении Вороного
- •10.4 Дуальность разбиений Вороного и Делоне
- •10.5 Алгоритм построения тетраэдризации Делоне
- •Триангуляция Делоне
- •Ячейки Вороного
- •10.6 Вопросы и упражнения
- •11. Алгоритмы построения выпуклой оболочки и триангуляции
- •11.1. Алгоритм построения выпуклой оболочки с использованием метода сортировки
- •11.2 Алгоритм построения триангуляции
- •12. Алгоритмы геометрического поиска
- •12.1 Поиск в плоском случае
- •12.2 Поиск на множестве тетраэдров
- •12.3 Поиск на множестве произвольных несамопересекающихся многогранников е3
- •12.4 Вопросы и упражнения
- •Список литературы
9.2 Основные геометрические объекты
Обозначим через
n-мерное
евклидово пространство, т.
е. пространство векторов (x1,…,xn),
состоящих из действительных
чисел xi,
i
= 1,…,n,
с расстоянием
.
Определим теперь важнейшие объекты, рассматриваемые вычислительной геометрией.
Точка. Точке р в пространстве En соответствует набор координат (x1,…,xn). Эту точку можно интерпретировать также и как n-компонентный вектор, исходящий из начала координат в En, свободным концом которого является точка р.
Прямая, плоскость, линейное многообразие. Пусть даны две разные точки q1 и q2, принадлежащие En тогда линейная комбинация
называется прямой в En.
В общем случае для заданных k линейно независимых точек q1,...,qk, принадлежащих Ed (k d), линейная комбинация
называется линейным многообразием размерности (k — 1) в En.
Отрезок. Пусть
даны две разные точки q1
и q2,
принадлежащие
En,
тогда линейная
комбинация
при условии
определит выпуклую
комбинацию для
q1
и q2
т.е.
прямолинейный
отрезок,
соединяющей
две точки: q1
и q2.
Обычно этот
отрезок обозначают
как
(неупорядоченная
пара).
Выпуклое многообразие. Область D, принадлежащая пространству En, называется выпуклой, если для любой пары точек q1 и q2 из D отрезок целиком принадлежит D.
Можно доказать, что пересечением выпуклых областей является выпуклая область.
Доказательство:
Пусть A
и B
выпуклые множества. Пусть C
=
.
Возьмем две произвольные точки q1
и q2
из множества
С.
Отрезок
лежит в множестве A
т.к. оно выпукло. Аналогично отрезок
лежит в
множестве B.
Следовательно, лежит в их пересечении
C.
Таким образом множество С
содержит вместе с двумя своими точками
отрезок их соединяющий, значит оно
выпукло.
Выпуклая оболочка. Выпуклой оболочкой множества точек S, принадлежащих пространству En, называется граница наименьшей выпуклой области в En, которая охватывает S.
Многоугольник. Многоугольником в пространстве Е2 называется конечное множество отрезков, в котором каждый конец отрезка принадлежит ровно двум отрезкам и никакое подмножество этих отрезков не обладает указанным свойством. Эти отрезки называются сторонами (иногда ребрами), а их концы — вершинами многоугольника. (Заметим, что число сторон и число вершин совпадают.) Многоугольник с N вершинами называется N-угольником.
Многоугольник называется простым, если никакая пара непоследовательных его ребер не имеет общих точек. Простой многоугольник разбивает плоскость на две непересекающиеся области — внутреннюю (конечную) и внешнюю (бесконечную), разделенные этим многоугольником (теорема Жордана). (Замечание: в обиходе термин «многоугольник» часто употребляется для обозначения объединения границы и внутренней области.)
Простой многоугольник Р называется выпуклым, если его внутренняя область является выпуклым множеством.
Простой многоугольник
Р называется
звездным, если
существует точка
z,
не внешняя
для Р, такая,
что для всех точек р, принадлежащих
Р, отрезок
полностью лежит внутри Р.
(Итак, любой
выпуклый многоугольник звездный.)
Множество точек
z,
обладающих
указанным выше свойством, называется
ядром Р.
(Очевидно,
выпуклый многоугольник совпадает
со своим ядром.)
Планарный граф. Граф G = (V, Е) (где V — множество вершин, Е — множество ребер) называется планарным, если его можно уложить на плоскости без самопересечений (см. разд. 1.2.3.2). Прямолинейная укладка ребер планарного графа определяет разбиение плоскости, называемое планарным подразбиением или картой. Пусть v — число вершин, е — число ребер и f — число граней (включая единственную бесконечную грань) такого подразбиения. Эти три параметра связаны классической формулой Эйлера:
v - e + f = 2.
Триангуляция. Планарное подразбиение называется триангуляцией, если все его конечные грани являются треугольниками. Триангуляцией конечного множества точек S называется плоский граф S, имеющий наибольшее возможное число ребер (другими словами, триангуляция S получена путем соединения точек из S непересекающимися прямолинейными отрезками так, что любая грань, лежащая внутри выпуклой оболочки S, является треугольником).
Полиэдр (многогранник). Полиэдром в пространстве E3 называется такое конечное множество плоских многоугольников, когда каждая сторона любого многоугольника принадлежит еще ровно одному из остальных многоугольников (смежным многоугольникам) и никакое из подмножеств этого множества многоугольников не обладает указанным свойством. Вершины и стороны этих многоугольников являются вершинами и ребрами данного полиэдра; сами многоугольники называются гранями полиэдра.
Полиэдр называется простым, если никакая пара несмежных его граней не имеет общих точек. Простой полиэдр разбивает пространство на две непересекающиеся области — внутреннюю (конечную) и внешнюю (бесконечную). (И опять, в обиходе термин «полиэдр» часто используется для обозначения объединения границы и внутренней области.)
Простой полиэдр называется выпуклым, если его внутренняя область является выпуклым множеством.