
- •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 Вопросы и упражнения
- •Список литературы
2.3. Аналитическое представление кривых и поверхностей
Пусть на плоскости задана декартова система координат.
Кривая на плоскости — это
геометрическое место точек
,
удовлетворяющих уравнению
, (2.8)
где
— функция двух переменных. Ясно, что
далеко не каждая функция будет задавать
линию. Так, например, уравнению
не удовлетворяет ни одна точка плоскости, а уравнению
удовлетворяет только одна точка
.
Для аналитического представления кривой
во многих случаях удобнее задавать
кривую параметрическими уравнениями,
используя вспомогательную переменную
(параметр)
:
,
(2.9)
где
и
— непрерывные функции на заданном
интервале изменения параметра. Если
функция
такова, что можно выразить
через
(
),
то от параметрического представления
кривой легко перейти к уравнению (3.10):
.
Систему уравнений (2.9) можно записать в векторном виде:
.
Отрезок прямой представляет собой частный случай кривой, причем параметрическое представление его может иметь вид
или
.
Окружность радиуса
с центром в точке
может быть представлена параметрическими
уравнениями
.
Перейдем к трехмерному пространству с заданной декартовой системой координат.
Поверхность
в пространстве — это
геометрическое место точек
,
удовлетворяющих уравнению вида
. (2.10)
Так же, как и в случае кривой на плоскости, не всякая функция описывает какую-либо поверхность. Например, уравнению
не удовлетворяет ни одна точка пространства. Поверхность также может быть задана в параметрическом виде, но в отличие от кривой для этого требуются две вспомогательные переменные (параметры):
. (2.11)
Например, сфера радиуса
с центром в точке
может быть задана уравнением
либо же параметрическими уравнениями
.
Кривую в пространстве можно описать как пересечение двух поверхностей, т. е. с помощью системы уравнений
(2.12)
или параметрическими уравнениями вида
.
(2.13)
2.4. Пересечение луча с плоскостью и сферой
Прямая на плоскости и в пространстве
является бесконечной в обе стороны.
Лучом называется полупрямая,
т. е. множество всех точек прямой,
лежащих по одну сторону от заданной ее
точки, называемой началом луча. Луч
будем задавать в параметрическом виде,
как это было описано в одном из предыдущих
разделов. Пусть
— направляющий вектор прямой, а
— начальная точка. Тогда координаты
точек, принадлежащих лучу,
будут определяться формулами
,
. (2.14).
Будем считать, что направляющий вектор
единичный, т. е.
.
Сначала рассмотрим задачу о нахождении точки пересечения луча с плоскостью, заданной каноническими уравнением
. (2.15).
Вектор нормали
тоже будем считать единичным. Сначала
надо определить значение параметра t,
при котором луч пересекает плоскость.
Для этого подставим координаты из
формулы (2.14) в уравнение (2.15) и получим
,
откуда легко определить, что луч пересекает плоскость в точке со значением
,
если эта величина положительна. Очевидно,
что такая точка существует только при
условии
.
В свою очередь, эта величина обращается
в нуль только в случае, когда векторы
и
ортогональны друг другу.
Пусть теперь нам задана сфера с центром
в точке
и радиусом d. Тогда
уравнение сферы будет иметь вид
.
Подставив сюда координаты луча из уравнения (3.9), получим, что параметр, при котором луч пересекает сферу, должен удовлетворять квадратному уравнению
,
где
,
,
.
Определим корни этого уравнения. Если
дискриминант
,
то корни существуют. Их может быть либо
два (D>0), либо
один (D=0). В первом
случае имеем две точки пересечения, во
втором одну (луч касается сферы).
Соответствующие значения параметра
определяются соотношением
,
причем учитывается только положительное значение.