
- •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.3 Вопросы и упражнения
Что означает понятие : вычислительная сложность алгоритма?
Опишите алгоритм бинарного поиска.
Дайте определение выпуклого множества в пространстве En
Доказать что пересечение любой совокупности выпуклых множеств является выпуклым.
Привести пример многоугольника на плоскости, который не является простым.
Доказать что для любого множества на плоскости существует выпуклая оболочка.
Предложить алгоритм разбиения простого многоугольника на треугольники
10. Триангуляция Делоне и диаграмма Вороного
10.1 Введение
Задача построения триангуляции является одной из базовых в вычислительной геометрии. К ней сводятся многие практические задачи. Например, задачи, связанные с определением топологических свойств объектов или восстановлением поверхностей, заданных нерегулярными наборами отсчётов. Наконец, практически все системы визуализации основаны на подобных геометрических моделях.
Разбиение плоскости на треугольники или пространства на тетраэдры по заданным точкам позволяет получить представление о связях между точками, интерполировать различные значения на плоскости и в пространстве, строить другие структуры.
Разработка эффективных алгоритмов триангуляции была и остаётся очень актуальной задачей. И, несмотря на всё разнообразие математических, графических пакетов и вычислительных средств бывает необходимо использовать независимый, легко настраиваемый, быстрый, надёжный алгоритм триангуляции.
Приведем формальное определение триангуляции.
Триангуляцией (тетраэдеризацией, в трёхмерном случае) конечного множества точек N называется такое разбиение выпуклой оболочки N на треугольники (тетраэдры), что выполняются следующие требования:
каждая точка выпуклой оболочки N принадлежит какому-то треугольнику (тетраэдру)
треугольники (тетраэдры) не имеют общих внутренних точек
вершинами треугольников (тетраэдров) являются точки из N
каждая точка N является вершиной какого-то треугольника (тетраэдра)
Среди нескольких известных видов триангуляций на практике обычно применяется триангуляция Делоне, которая должна удовлетворять простому локальному условию: никакая точка не может лежать внутри сферы, описанной вокруг тетраэдра Делоне (для плоского случая – внутри окружности, описанной вокруг треугольника Делоне). Условие Делоне относительно просто проверить. Кроме этого, из всех возможных триангуляций, триангуляция Делоне (на плоскости) имеет самый большой минимальный угол среди минимальных углов всех других триангуляций, поэтому полученные треугольники наиболее близки к равносторонним, что повышает точность возможной последующей интерполяции.
10.2 Разбиение Делоне
Метод построения пустого шара Делоне. Симплекс Делоне.
Воспользуемся пустым шаром, который мы будем перемещать, изменяя его размер так, чтобы он мог касаться точек системы {А}, но всегда оставался пустым. Этот мысленный образ, предложенный Делоне, помогает увидеть проблему с новой стороны и яснее понять взаимосвязь и единство разбиений Вороного и Делоне.
Итак, поместим в систему точек {А} пустой шар Делоне. Это всегда возможно, если выбрать шар достаточно малым. Начнем увеличивать его радиус, оставляя центр шара на месте. В какой-то момент поверхность шара встретит некоторую точку i системы {А}. Это обязательно произойдет, ибо в нашей системе нет неограниченно больших пустот. (Мы видим, что условия, наложенные ранее на систему {А}, действительно являются нужными.) Будем продолжать увеличивать радиус пустого шара так, чтобы точка i оставалась на его
Рис. 10.1 Разбиение Делоне двумерной системы точек. Симплексы Делоне заполняют пространство без щелей и наложений. Описанная сфера любого симплекса не содержит внутри себя других точек системы.
поверхности. Для этого придется двигать центр шара от точки i. Неважно, по какой траектории мы будем перемещать центр шара, рано или поздно шар достигнет
своей поверхностью другой точки системы {А}. Пусть это будет точка j. Продолжим увеличивать радиус нашего шара, сохраняя уже обе точки на его поверхности. Увеличиваясь, шар достигнет какой-то третьей точки системы, точки k. В двумерном случае наш "пустой круг" в этот момент зафиксируется, т.е. станет невозможным дальнейшее увеличение его радиуса при сохранении круга пустым. При этом мы выявляем элементарную двумерную конфигурацию трех точек (i,jk), определяющую некий треугольник, особенностью которого является то, что внутри его описанной окружности нет других точек системы {А}. В трехмерном пространстве шар не определяется тремя точками. Продолжим увеличивать его радиус, сохраняя все три найденные точки на его поверхности. Это будет возможно до тех пор, пока поверхность шара не встретится с четвертой точкой l системы. После этого движение и рост пустого шара станут невозможными. Найденные четыре точки (i,j,k,l) определяют вершины тетраэдра, который характерен тем, что внутри его описанной сферы нет других точек системы {А}. Такой тетраэдр называется симплексом Делоне.
Напомним, что симплексом в математике называют простейшую фигуру в пространстве данной размерности: тетраэдр — в трехмерном пространстве, треугольник — в двумерном. Во избежание недоразумений подчеркнем еще раз, что произвольная четверка точек системы, не лежащих в одной плоскости, всегда определяет некий симплекс. Однако он будет симплексом Делоне только в том случае, если его описанная сфера пуста. Другими словами, симплексы Делоне определяются особым выбором четверок точек в системе {А}.