- •Часть I
- •Оглавление
- •Общее введение в компьютерную графику Предмет и область применения компьютерной графики
- •1. Отображение информации
- •2. Проектирование
- •3. Моделирование
- •4. Графический пользовательский интерфейс
- •Краткая история
- •Технические средства поддержки компьютерной графики
- •Вопросы и упражнения
- •Цвет в компьютерной графике о природе света и цвета
- •Цветовой график мко
- •Цветовые модели rgb и cmy
- •Цветовые модели hsv и hls
- •Пространство cie Luv
- •Вопросы и упражнения
- •Геометрические преобразования Системы координат и векторы
- •Уравнения прямой и плоскости
- •Аналитическое представление кривых и поверхностей
- •Пересечение луча с плоскостью и сферой
- •Интерполяция функций одной и двух переменных
- •Матрицы
- •Геометрические преобразования (перенос, масштабирование, вращение)
- •Переход в другую систему координат
- •Задача вращения относительно произвольной оси
- •Вопросы и упражнения
- •Представление геометрической информации Геометрические примитивы
- •Системы координат: мировая, объектная, наблюдателя и экранная
- •Однородные координаты. Задание геометрических преобразований в однородных координатах с помощью матриц
- •Вопросы и упражнения
- •Отсечение (клиппирование) геометрических примитивов
- •Алгоритм Сазерленда — Коэна отсечения прямоугольной областью
- •Отсечение выпуклым многоугольником
- •Клиппирование многоугольников
- •Вопросы и упражнения
- •Удаление невидимых поверхностей и линий
- •Удаление нелицевых граней многогранника Алгоритм Робертса
- •Алгоритм Варнока
- •Алгоритм Вейлера — Азертона
- •Метод z-буфера
- •Методы приоритетов (художника, плавающего горизонта)
- •Алгоритмы построчного сканирования для криволинейных поверхностей
- •Метод двоичного разбиения пространства
- •Метод трассировки лучей
- •Вопросы и упражнения
- •Проецирование пространственных сцен Основные типы проекций
- •Параллельные проекции
- •Центральные проекции
- •Математический аппарат
- •Ортогональные проекции
- •Косоугольные проекции
- •Центральные проекции
- •Специальные картографические проекции. Экзотические проекции земной сферы
- •Стереографическая проекция
- •Гномоническая проекция
- •Ортографическая проекция
- •Проекции на цилиндр
- •Проекция Меркатора
- •Проекции на многогранник
- •Необычные проекции
- •Вопросы и упражнения
- •Растровое преобразование графических примитивов
- •Алгоритм Брезенхема растровой дискретизации отрезка
- •Алгоритмы Брезенхема растровой дискретизации окружности и эллипса
- •Алгоритмы заполнения областей
- •Вопросы и упражнения
- •Закрашивание. Рендеринг полигональных моделей
- •Простая модель освещения
- •Закраска граней Плоское закрашивание
- •Закраска методом Гуро
- •Закраска методом Фонга
- •Более сложные модели освещения
- •Устранение ступенчатости (антиэлайзинг)
- •Вопросы и упражнения
- •Визуализация пространственных реалистических сцен Свето-теневой анализ
- •Метод излучательности
- •Глобальная модель освещения с трассировкой лучей
- •Текстуры
- •Вопросы и упражнения
- •Список литературы
Аналитическое представление кривых и поверхностей
Пусть на плоскости задана декартова система координат.
Кривая на плоскости — это геометрическое место точек , удовлетворяющих уравнению
, (3.10)
где — функция двух переменных. Ясно, что далеко не каждая функция будет задавать линию. Так, например, уравнению
не удовлетворяет ни одна точка плоскости, а уравнению
удовлетворяет только одна точка .
Для аналитического представления кривой во многих случаях удобнее задавать кривую параметрическими уравнениями, используя вспомогательную переменную (параметр) :
, (3.11)
где и — непрерывные функции на заданном интервале изменения параметра. Если функция такова, что можно выразить через ( ), то от параметрического представления кривой легко перейти к уравнению (3.10):
Систему уравнений (3.11) можно записать в векторном виде:
Отрезок прямой представляет собой частный случай кривой, причем параметрическое представление его может иметь вид
или
.
Окружность радиуса с центром в точке может быть представлена параметрическими уравнениями
.
Перейдем к трехмерному пространству с заданной декартовой системой координат.
Поверхность в пространстве — это геометрическое место точек , удовлетворяющих уравнению вида
(3.12)
Так же, как и в случае кривой на плоскости, не всякая функция описывает какую либо поверхность. Например, уравнению
не удовлетворяет ни одна точка пространства. Поверхность также может быть задана в параметрическом виде, но в отличие от кривой для этого требуются две вспомогательные переменные (параметры):
(3.13)
Например, сфера радиуса с центром в точке может быть задана уравнением
,
либо же параметрическими уравнениями
.
Кривую в пространстве можно описать как пересечение двух поверхностей, т. е. с помощью системы уравнений
(3.14)
или параметрическими уравнениями вида
(3.15)
Пересечение луча с плоскостью и сферой
Прямая на плоскости и в пространстве является бесконечной в обе стороны. Лучом называется полупрямая, т. е. множество всех точек прямой, лежащей по одну сторону от заданной ее точки, называемой началом луча. Луч будем задавать в параметрическом виде, как это было описано в одном из предыдущих разделов. Пусть — направляющий вектор прямой, а — начальная точка. Тогда координаты точек луча будут определяться формулами
. (3.8).
Будем считать, что направляющий вектор единичный, т. е. .
Сначала рассмотрим задачу о нахождении точки пересечения луча с плоскостью, заданной каноническими уравнением
. (3.9).
Вектор нормали тоже будем считать единичным. Сначала надо определить значение параметра t, при котором луч пересекает плоскость. Для этого подставим координаты из формулы (3.8) в уравнение (3.9) и получим
,
откуда легко определить, что луч пересекает плоскость в точке со значением
.
Очевидно, что такая точка существует только при условии . В свою очередь, эта величина обращается в нуль только в случае, когда векторы и ортогональны друг другу.
Пусть теперь нам задана сфера с центром в точке и радиусом d. Тогда уравнение сферы будет иметь вид
.
Подставив сюда координаты луча из уравнения (3.9), получим, что параметр, при котором луч пересекает сферу, должен удовлетворять квадратному уравнению
,
где , , . Определим корни этого уравнения. Если дискриминант , то корни существуют. Их может быть либо два (D>0), либо один (D=0). В первом случае имеем две точки пересечения, во втором одну (луч касается сферы). Соответствующие значения параметра определяются соотношением
.