- •Глава 1. Основные виды геометрических объектов
- •§1. Основные аналитические способы задания кривых
- •§2. Виды кривых
- •§3. Основные способы задания прямых
- •§4. Способы задания окружностей и их дуг
- •§6. Виды поверхностей
- •Пример 2.Уравнение конуса второй степени
- •§7. Основные способы задания плоскостей
- •§8. Аналитические способы задания пространственных тел
- •Глава 2. Интерполяция кривых и поверхностей алгебраическими полиномами
- •§1. Основные способы моделирования кривых. Интерполяция и аппроксимация
- •§2. Интерполирование кривых с помощью алгебраических полиномов канонического вида
- •§3. Интерполирование по однократным узлам. Интерполяционные многочлены Лагранжа и Ньютона
- •§4. Интерполирование по двукратным узлам. Интерполяционные многочлены Эрмита
- •§5. Интерполирование поверхностей
- •5.1. Интерполирование по однократным узлам. Билинейные поверхности
- •5.2. Интерполирование по двукратным узлам
- •Глава 3. Моделирование кривых и поверхностей при помощи сплайнов
- •I. Построение локальных сплайнов.
- •II. Построение интерполяционных сплайнов.
- •§1. Интерполирование кривых и поверхностей с помощью локальных сплайнов
- •1.1 Построение сплайнов по однократным узлам
- •1.2 Интерполирование по двукратным узлам
- •§2. Построение интерполяционных сплайнов.
- •2.2. Кубические интерполяционные сплайны
- •§3. Интерполяция с помощью в-сплайнов
- •Глава 4. Интерполирование поверхностей по линиям
- •§1.Интерполирование по кривым (линейчатые или плазовые поверхности)
- •§2. Линейные поверхности Кунса
- •§3. Обобщенные поверхности Кунса
- •Глава 5. Аппроксимация алгебраическими полиномами
- •§1. Аппроксимация по методу наименьших квадратов
- •§2. Аппроксимация алгебраическими многочленами по критерию наилучшего равномерного приближения
- •§ 3. Аппроксимация при помощи кривых и поверхностей Безье
- •Глава 6. Модели объектов. Плоские и пространственные линейные преобразования
- •§1. Модели (структуры данных) графических объектов
- •§2. Задание плоских и пространственных линейных преобразований при помощи уравнений связи
- •§ 3. Однородные координаты. Матричные представления линейных преобразований
- •Задачи. Записать прямые и обратные матрицы элемен-тарных преобразований, при помощи которых можно осу-ществить следующие действия:
- •§ 4. Составные линейные преобразования
- •§ 5. Линейные преобразования каркасных моделей
- •Глава 7.Проективные изображения трехмерных объектов
- •§1. Аксонометрические проекции
- •1.1.Ортогональные проекции
- •1.2 Диметрические проекции
- •Куб Диметрическая проекция
- •1. 3. Изометрическая проекция
- •§2. Перспективные проекции
- •§3. Построение проективных векторных изображений трёхмерных объектов
- •Глава 8. Графические базы данных (гбд)
- •§1. Структура и схема функционирования типовых гбд
- •§2. Постановка задачи проектирования гбд в графической системе AutoCad
- •Точки привязки
- •§3. Разработка структуры гбд
- •§4. Пакетные файлы гбд
- •§5. Параметрические функции гбд
- •§6. Создание библиотек слайдов гбд
- •§7. Модификация основного меню AutoCad 2000
- •7.1. Файл меню. Его разделы. Управляющие символы
- •7.2. Модификация всплывающего и падающего меню AutoCad2000
- •7.3. Модификация экранного меню AutoCad2000
- •7.4. Модификация графического меню AutoCad2000
- •§8. Использование разработанной базы данных
- •Глава 9. Создание реалистических изображений
- •§ 1. Пространственные модели
- •§2. Геометрическое моделирование объектов сложной формы
- •§ 3. Текстуры
- •§ 4. Основные операции при построении реалистических изображений
- •§ 5. Моделирование источников освещения и расчёт освещённости малых участков поверхности объектов
- •§ 6. Моделирование отражающих свойств поверхностей
- •§ 7. Моделирование отражения от поверхности (затенение)
- •§ 8. Удаление невидимых граней. Расчёт теней
- •§9. Создание стереоскопического эффекта
- •§10. Анимация
- •Порядок выполнения и примерные темы курсовых работ
- •Литература
§ 8. Удаление невидимых граней. Расчёт теней
Рассмотрим последовательность действий, которая обычно применяется при удалении невидимых граней. Допустим, уже сформировано множество треугольных граней t t1 ,..., tn и все они непрозрачны.
I. Удаление граней, расположенных на невидимых сторонах объектов.
Для каждой грани рассматривается ее внешняя нормаль N, а также радиус-вектор r, соединяющий точку на грани с точкой наблюдения.

Рис 9.6
Если грань находится с видимой стороны объекта, то для угла y между векторами N иr выполняется условие y < 90 o , если с невидимой, то y 90 o (Рис.9.6). Данное условие проверяется для всего массива треугольников t. Из него удаляются все, у которых
yi 90 o.
Обозначим множество оставшихся треугольников через t t1 ,...tm, m<n.
I. Удаление граней, полностью закрывающихся другими, и определение видимых частей граней, закрывающихся час-тично.
200
Организуется последовательный просмотр множества и для каждого треугольника tJ выполняются следующие операции:
1.Рассматривается списокt, в который входят треугольники tk с номерами k = j+1, ... , m - т.е. все последующие за tJ треугольники из t. Из списка t удаляются заведомо непересекающиеся с tJ треугольники. Допустим , tk t. Обозначим координаты вершин с номерами 1, 2, 3 в треуголь-никах tJ и tk в виде:
tJ = ( (хJ 1 , уJ 1 ), ( хJ 2 , уJ 2 ), ( хJ 3 , уJ 3 ) ) ,
tk = ( (хk 1 , уk 1 ), ( хk 2 , уk 2 ), ( хk 3 , уk 3 ) ) .
Условия пересечения tJ , tk по оси х формулируются в виде двух неравенств:

( Рис.9.7)
(Рис.9.8)
Первое неравенства означает, что все вершины tJ лежат ле-вее по оси х всех вершин tk, второе неравенство - обратное условие.
Условия непересечения tJ и tk по оси y формулируются ана-логично. При непересечении tJ c tk хотя бы по одной из осей x, y треугольник tk исключается из списка t. В итоге после исключения заведомо непересекающихся с tJ треугольников из списка t получается сокращённый список t треуголь-ников, которые имеют пересечения с tJ по обеим коор-динатам. Если список t пуст, то треугольник tJ сохра-няется в списке t и рассматривается треугольник из этого списка с последующим номером (переход к пункту 1).
Eсли список t не пуст, то это означает, что есть тре-угольники, пересекающиеся с tJ одновременно по обеим координатам. Эта ситуация встречается наиболее часто.
201

Рис. 9.7 Рис. 9.8
Здесь используется более углубленный анализ относитель-ного положения граней.
Поочередное сравнение треугольника tJ с треугольниками из t. Возможны следующие случаи относительного расположения tJ и треугольников tst:
а) треугольники не пересекаются (Рис.9.9), поэтому никаких действий производить не требуется.
Рис.
9.9 Рис. 9.10
202
б) tJ попадает внутрь ts (Рис. 9.10). Дополнительно анали-зируется их близость к наблюдателю. Если ts ближе, то tJ ис-ключается из списка видимых граней и его анализ закан-чивается. Если tJ ближе, то видимая часть ts делится на новые треугольные грани, которые включают в список t вместо ts .
в) ts попадает внутрь tJ (Рис. 9.11). Обработка аналогична.

Рис. 9.11 Рис. 9.12
г) треугольники tJ и ts пересекаются (Рис. 9.12). Исходя из близости граней к наблюдателю невидимые части граней исключаются, оставшиеся части при необходимости разбивают на новые треугольники и рассматривают вместо исходной грани.
Алгоритмы нанесения теней идентичны алгоритмам удаления скрытых граней с той разницей, что во втором случае определяются поверхности, видимые наблюдателем, а в первом – поверхности, видимые из источника освещения (осве-щаемые). Эти поверхности воспринимают свет от источника в отличие от не воспринимающих невидимых (затенённых) поверхностей. Поскольку на сцене, как правило, всегда присутствует несколько источников (в том числе – и рассеян-
203
ный свет, то затенённые относительно одного источника по-верхности освещаются другими.
Если объекты и источники освещения неподвижны, а изменяется только положение наблюдателя (он рассматривает неподвижную сцену), то положение теней не изменяется и они рассчитываются только один раз.
