
- •153000 Г. Иваново, пр. Ф.Энгельса, 21
- •Лекция №1 Предмет и область применения компьютерной графики
- •1. Отображение информации
- •2. Проектирование
- •3. Моделирование
- •4. Графический пользовательский интерфейс
- •Краткая история
- •Технические средства поддержки компьютерной графики
- •Вопросы и упражнения
- •Лекция №2 о природе света и цвета
- •Цветовой график мко
- •Цветовые модели rgb и cmy
- •Цветовые модели hsv и hls
- •Пространство cie Luv
- •Вопросы и упражнения
- •Лекция №3 Геометрические преобразования Системы координат и векторы
- •Уравнения прямой и плоскости
- •Аналитическое представление кривых и поверхностей
- •Пересечение луча с плоскостью и сферой
- •Лекция №3 (продолжение) Интерполяция функций одной и двух переменных
- •Матрицы
- •Геометрические преобразования (перенос, масштабирование, вращение)
- •Переход в другую систему координат
- •Задача вращения относительно произвольной оси
- •Вопросы и упражнения
- •Лекция №4 Введение в растеризацию кривых
- •Изображение отрезка с целочисленными координатами концов
- •Цифровой дифференциальный анализатор
- •Алгоритм Брезенхема
- •Алгоритм Кастла-Питвея
- •Изображение отрезка с нецелочисленными координатами концов
- •Изображение окружностей
- •Алгоритм Брезенхема
- •Изображение эллипсов
- •Построение по неявной функции
- •Построение путем сжатия окружности
- •Лекция №5 Представление геометрической информации Геометрические примитивы
- •Полигональные модели
- •Воксельные модели
- •Поверхности свободных форм (функциональные модели)
- •Системы координат: мировая, объектная, наблюдателя и экранная
- •Однородные координаты. Задание геометрических преобразований в однородных координатах с помощью матриц
- •Вопросы и упражнения
- •Лекция №6 Отсечение (клиппирование) геометрических примитивов
- •Алгоритм Сазерленда-Коэна отсечения прямоугольной областью
- •Отсечение выпуклым многоугольником
- •Клиппирование многоугольников
- •Вопросы и упражнения
- •Лекция №7 Удаление невидимых поверхностей и линий
- •Удаление нелицевых граней многогранника Алгоритм Робертса
- •Алгоритм Варнока
- •Алгоритм Вейлера-Азертона
- •Метод z-буфера
- •Методы приоритетов (художника, плавающего горизонта)
- •Алгоритмы построчного сканирования для криволинейных поверхностей
- •Метод двоичного разбиения пространства
- •Метод трассировки лучей
- •Вопросы и упражнения
- •Лекция №8 Проецирование пространственных сцен Основные типы проекций
- •Параллельные проекции
- •Центральные проекции
- •Математический аппарат
- •Ортогональные проекции
- •Косоугольные проекции
- •Центральные проекции
- •Специальные картографические проекции. Экзотические проекции земной сферы
- •Стереографическая проекция
- •Гномоническая проекция
- •Ортографическая проекция
- •Проекции на цилиндр
- •Проекция Меркатора
- •Проекции на многогранник
- •Необычные проекции
- •Вопросы и упражнения
- •Лекция 9 Растровое преобразование графических примитивов
- •Алгоритм Брезенхема растровой дискретизации отрезка
- •Алгоритмы Брезенхема растровой дискретизации окружности и эллипса
- •Алгоритмы заполнения областей
- •Вопросы и упражнения
- •Лекция 10 Закрашивание. Рендеринг полигональных моделей
- •Простая модель освещения
- •Закраска граней Плоское закрашивание
- •Закраска методом Гуро
- •Закраска методом Фонга
- •Более сложные модели освещения
- •Устранение ступенчатости (антиэлайзинг)
- •Вопросы и упражнения
- •Лекция 11 Визуализация пространственных реалистических сцен Свето-теневой анализ
- •Метод излучательности
- •Глобальная модель освещения с трассировкой лучей
- •Текстуры
- •Вопросы и упражнения
- •Учебники к курсу
- •Список литературы
Аналитическое представление кривых и поверхностей
Пусть на плоскости задана декартова система координат.
Кривая на плоскости - это геометрическое
место точек
,
удовлетворяющих уравнению
|
(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) и получим
откуда легко определить, что луч пересекает плоскость в точке со значением
Очевидно, что такая точка существует
только при условии
.
В свою очередь, эта величина обращается
в нуль только в случае, когда векторы
и
ортогональны
друг другу.
Пусть теперь нам задана сфера с центром
в точке
и
радиусом
.
Тогда уравнение сферы будет иметь вид
Подставив сюда координаты луча из уравнения (3.9), получим, что параметр, при котором луч пересекает сферу, должен удовлетворять квадратному уравнению
где
.
Определим корни этого уравнения. Если
дискриминант
,
то корни существуют. Их может быть либо
два
,
либо один
.
В первом случае имеем две точки
пересечения, во втором - одну (луч касается
сферы). Соответствующие значения
параметра определяются соотношением