- •А.А. Шелестов
- •Содержание
- •Введение
- •1Системы компьютерной графиКи на персональных компьютерах
- •2 Математические основы компьютерной графики
- •2.1 Преобразования на плоскости
- •2.1.1 Матричные операции
- •2.1.2 Преобразование точек
- •2.1.3 Преобразование с помощью однородных координат
- •2.2 Трехмерные преобразования
- •2.2.1 Изменение масштаба
- •2.2.2 Смещение
- •2.2.3 Вращение вокруг координатных осей
- •2.2.4 Отображение относительно координатных плоскостей
- •2.2.5 Пространственный перенос
- •2.2.6 Трехмерное вращение вокруг произвольной оси
- •2.3 Виды плоских проекций
- •2.3.1 Аксонометрические проекции
- •2.3.2 Диметрическая проекция
- •2.3.3 Изометрия, триметрия.
- •2.3.4 Косоугольные проекции
- •2.3.5 Перспективные преобразования и проекции.
- •3 Алгоритмические основы компьютерной графики
- •3.1 Построение реалистических изображений
- •3.2 Простая модель освещения
- •3.3 Определение нормали к поверхности
- •3.4 Определение вектора отражения
- •3.5 Модель освещения со спецэффектами
- •3.6 Создание реалистического изображения
- •3.6.2 Вращение тела
- •3.6.3 Закраска поверхностей и наложение текстуры на поверхность
- •3.6.4 Удаление невидимых граней
- •3.7 Закраска методом Гуро
- •3.8. Закраска Фонга
- •3.9 Яркость и освещенность
- •3.10 Отсечение
- •3.11 Прозрачность
- •3.12 Тени
- •3.13 Текстура
- •3.14 Фактура
- •Контрольная работа по курсу «компьютерная графика»
- •Раздел 1…3. Для каждого задания включить:
- •Раздел 4. Заключение
- •Вопросы по дисциплине "Компьютерная графика"
- •Устройства ввода изображений в кг.
- •Устройства вывода изображений в кг.
- •Список использованных источников
- •Возможности графического представления в microsoft excel Введение
- •Основы работы в Microsoft Excel Структура рабочей книги
- •Заполнение ячеек
- •Создание формул Выполнение быстрых вычислений на листе
- •Вставка итогов для диапазона ячеек
- •Создание общего итога
- •Создание формулы
- •Разрешение вопросов, возникающих при появлении ошибок в формулах
- •Ввод формул
- •Синтаксис формулы
- •Ссылки на ячейку
- •Функции
- •Правка формулы
- •Использование функций для вычисления значений
- •Функции работы с базами данных
- •Диаграммы Алгоритм задания диаграммы
- •Создание диаграмм
- •Создание диаграммы для сводной таблицы с полями страниц
- •Диаграмма для видимых данных
- •Диаграмма для нескольких радов данных
- •Изменение способа отображения данных на диаграмме
- •Изменение значений, отображаемых на диаграмме
- •Изменение формата диаграммы
- •Переход на диаграмму и выбор ее элементов
- •Вставка меток значений
- •Удаление надписей, названий, легенды или сетки
- •Удаление рядов данных
- •Линии тренда на диаграмме
- •Изменение типа диаграммы
- •Работа с географическими картами
- •Рекомендации по настройке данных для создания карты
- •Создание географической карты
- •Ввод данных в географическую карту
3.6.4 Удаление невидимых граней
Задача удаления невидимых линий и поверхностей является одной из наиболее сложных задач в компьютерной графике. Алгоритмы удаления невидимых линий и поверхностей служат для определения линий, ребер, поверхностей или объемов,которые видимы или невидимы для наблюдателя, находящегося в заданной точке пространства.
Алгоритм Робертсапредставляет собой первое известное решение задачи удаления невидимых линий. Это математически элегантный метод, работающий в объектном пространстве. Алгоритм, прежде всего, удаляет из каждого тела те ребра или грани, которые экранируются самим телом. Затем каждое из видимых ребер каждого тела сравнивается с каждым из оставшихся тел для определения того, какая его часть или части, если таковые есть, экранируются этими телами. Поэтому вычислительная трудоемкость алгоритмаРобертсарастет теоретически как квадрат числа объектов. Это в сочетании с ростом интереса к растровым дисплеям, работающим в пространстве изображения, привело к снижению интереса к алгоритмуРобертса.Однако математические методы, используемые в этом алгоритме, просты, мощны и точны. Кроме того, этот алгоритм можно использовать для иллюстрации некоторых важных концепций. Наконец, более поздние реализации алгоритма, использующие приоритетную предварительную сортировку вдоль осиzи простые габаритные или минимаксные тесты, демонстрируют почти линейную зависимость количества вычислений от числа объектов.
В алгоритме Робертсатребуется, чтобы все изображаемые тела или объекты были выпуклыми. Невыпуклые теладолжны быть разбиты на выпуклые части. В этом алгоритме выпуклое многогранное тело с плоскимигранями должно представляться набором пересекающихся плоскостей. Уравнение произвольнойплоскостив трехмерном пространстве имеет вид
(3.41)
В матричной форме этот результат выглядит так:
(3.42)
или
(3.43)
где [P]T = [a b c d] представляет собой плоскость.Поэтому любое выпуклое твердое тело можно выразить матрицей тела, состоящейиз коэффициентов уравнений плоскостей, т.е.
(3.44)
где каждый столбец содержит коэффициенты одной плоскости.
Напомним, что любая точка пространствапредставимав однородных координатах вектором
(3.45)
Более того, если точка лежит на плоскости, то.Если жене лежит на плоскости, то знак этого скалярного произведения показывает, по какую сторону от плоскости расположена точка. В алгоритмеРобертсапредполагается, что точки, лежащие внутри тела, дают положительное скалярное произведение.
Поскольку объем вычислений в алгоритмах удаления невидимых линий или поверхностей растет с увеличением числа многоугольников, для описания поверхностей выгодно использовать многоугольники с более чем тремя сторонами. Эти многоугольники могут быть как невыпуклыми, так и неплоскими. Метод, предложенный Мартином Ньюэлом,позволяет найти как точное решение для уравнений плоскостей, содержащих плоские многоугольники, так и «наилучшее» приближение длянеплоскихмногоугольников. Этот метод эквивалентен определению нормали в каждой вершине многоугольника посредством векторного произведения прилежащих ребер и усреднения результатов. Еслиа, b, с, d -коэффициенты уравнения плоскости,то
(3.46)
где если i = п, то j = 1, иначе j = i + 1.
А величина dвычисляется с помощью произвольной точки на плоскости. В частности, если компоненты этой точки на плоскости (x1,y1,z1), то
(3.47)
Тот факт, что плоскости имеют бесконечную протяженность и что скалярное произведение точки на матрицу тела отрицательно, если точка лежит вне этого тела, позволяет предложить метод, в котором матрица тела используется для определения граней, которые экранируются самим этим телом.
Если зритель находится в бесконечности на положительной полуоси zи смотрит на начало координат, то его взгляд направлен в сторону отрицательной полуосиz. В однородных координатах вектор такого направления равен:
(3.48)
который служит, кроме того, образом точки, лежащей в бесконечности на отрицательной полуоси z. Фактическипредставляет любую точку, лежащую наплоскостиz = -,т.е.любую точку типа (х, у,-). Поэтому, если скалярное произведениена столбец, соответствующий какой-нибудь плоскости в матрице тела отрицательно, толежит по отрицательную сторону этой плоскости. Следовательно, эти плоскости невидимы из любой точки наблюдения, лежащей в плоскостиz = ,а пробная точка наz=-экранируется самим телом. Такие плоскости называются нелицевыми, а соответствующие им грани - задними. Следовательно,
(3.49)
является условием того, что плоскости — нелицевые, а их грани–задние (см. рис. 3.15).
Рис. 3.15
Заметим, что для аксонометрических проекций (точка наблюденияв бесконечности) это эквивалентно поиску положительных значений в третьей строке матрицы тела.
Этот метод является простейшим алгоритмом удаления невидимых поверхностей для тел, представляющих собой одиночные выпуклые многогранники. Для выпуклых многогранников число граней при этом сокращается примерно наполовину. Метод эквивалентен вычислению нормали к поверхности для каждого отдельного многоугольника. Отрицательность нормали к поверхности показывает, что нормаль направлена в сторону от наблюдателя и, следовательно, данная грань не видна.