
- •Часть 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). В первом
случае имеем две точки пересечения, во
втором одну (луч касается сферы).
Соответствующие значения параметра
определяются соотношением
.