
- •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 Вопросы и упражнения
- •Список литературы
Косоугольные проекции
Рассмотрим косоугольную проекцию на
плоскость XOY, при
которой орт
переходит в вектор
,
т. е. направление проекции задается
вектором
.
Такое преобразование в пространстве
однородных координат можно задать с
помощью матрицы
.
В горизонтальной косоугольной изометрии
вектор
переходит в вектор
,
а в кабинетной проекции — в вектор
,
причем в обеих проекциях
.
Центральные проекции
Предположим, что центр проекции находится
в точке
,
а картинная плоскость совпадает с
плоскостью XOY. Возьмем
произвольную точку изображаемого
объекта
и определим ее проекцию на выбранную
плоскость (рис. 5.7).
Рис. 5.7. Центральная проекция на плоскость XOY
Прямую, проходящую через точки
и
,
зададим в параметрическом виде:
. (5.1)
Теперь найдем точку пересечения этой прямой с картинной плоскостью. Она определяется из условия равенства нулю третьей координаты:
,
откуда определяем значение параметра t, при котором точка прямой принадлежит координатной плоскости:
.
Подставляя это значение в формулу (7.1), мы получим координаты проекции точки :
Рис. 12
Фактором, влияющим на перспективное изменение размеров, является наличие координаты z в знаменателе. Чем ближе оказывается точка к центру проекции, тем больше знаменатель, а соответственно и координаты точки.
Мы
будем рассматривать ситуацию, когда
центр проекции лежит на оси OZ,
а сама ось направлена от наблюдателя к
проекционной плоскости, т. е.
.
Тогда формулы (5.2) приобретают вид
. (5.3)
В
однородных координатах такое преобразование
можно записать с помощью двух операций.
Сначала умножаем матрицу проективного
преобразования
на исходную точку и получаем точку в
четырехмерном пространстве:
. (5.4)
Затем проецируем эту точку в пространство однородных координат путем деления на четвертую компоненту:
.
Посмотрим
теперь, что происходит с пучком
параллельных прямых под действием
матрицы проекции. Пусть задан пучок
прямых, параллельных вектору
.
Тогда параметрическое уравнение прямой,
принадлежащей этому пучку, имеет вид
.
Из формулы (7.4) следует, что в результате проецирования получим множество точек
.
Переходя к однородным координатам и
умножив числитель и знаменатель каждой
дроби на
,
получим точки
вида
.
Теперь в каждой компоненте вектора числитель и знаменатель поделим на :
.
Переходя к пределу при
,
получим точку
.
Таким образом, получаем, что после
проецирования пучок параллельных прямых
пересекается в точке схода
.
Понятно, что у каждого пучка своя точка
схода. Если пучок прямых параллелен
плоскости XOY, т. е.
,
то точка схода оказывается на бесконечности,
а значит, прямые остаются параллельными.
Для построения перспективной проекции с несколькими точками схода используется матрица перспективного преобразования без проецирования
.
Теперь точки пространства сначала подвергаются перспективному преобразованию, а затем осуществляется проекция.
Определим точки схода для прямых,
параллельных осям координат. Для прямых
результатом проективного преобразования
будет множество точек
,
где
.
При
получим точку с координатами
.
При проекции на плоскость XOY
получим точку
.
Пучок прямых
перейдет в
,
,
а точкой схода для него будет
,
которая при проецировании перейдет в
точку, лежащую на оси OX
.
Аналогично для пучка прямых, параллельных
оси OY, получим точку
схода на оси OY
.
Эти три точки на плоскости являются
главными точками схода.