Л. Аммерал \ ! Интерактивная трехмерная машинная графика. Пер. j с англ. — М.: "Сол Систем", 1992.— 317стр.: ил. ; ISBN 5-85316-003-6 (рус.) Описывается интерактивная программная система для работы с : пространственными объектами: формирование, преобразование, получение проекций с удалением невидимых линий, в том числе для криво-линейных поверхностей. Вывод изображений на экран монитора, матричный принтер и графопостроитель. Система работает на персональном компьютере, реализована на языке Си Для широкого круга читателей, применяющих персональные компьютеры IBM PC или совместимые с ними для работы с графической информацией.
ПРЕДИСЛОВИЕ
Как и сами компьютеры, машинная графика и автоматизированное проектирование могут рассматриваться с двух различных позиций. Есть пользователи, которые интересуются лишь внешними аспектами графического программного обеспечения, и есть такие люди, которые больше хотят знать о его внутреннем содержании, поскольку они намерены^ сами писать подобное программное обеспечение. Последнюю группу будем в общем называть программистами, имея в виду,'что к ним относятся и те люди, которые, имея богатый программистский опыт, обычно называют себя как-либо по другому. В отличие от предыдущих книг автора, опубликованных в издательстве John Wiley & Sons и ориентированных главным образом на программистов, эта книга написана для обеих групп читателей: главы 1 и 2 предназначены преимущественно для пользователей, а главы 3 и 4 — для программистов. Если читатель собирается углубленно изучить алгоритмы и исходные тексты программ, ему все же настоятельно рекомендуется ознакомиться также и с главами 1 и 2, поскольку необходимо знать для чего предназначены изучаемые программы, прежде чем разбираться, как они работают. С другой стороны, если читатель относится к категории пользователей и возможно совсем не интересуется программированием, он сможет оценить тот факт, что в книгу включены полные исходные тексты всех программ, описываемых в книге. Очень часто обнаруживается, что пользователям очень нравятся те или иные программы, за исключением одного или двух важных моментов, которые хотелось бы изменить. Если иметь дело с программным обеспечением, представленным в данной книге, то можно обойтись без автора программы (хотя автор книги будет благодарен,
,- — «V««M
По сравнению с другими книгами общего характера по машинной графике, здесь учитываются специфические особенности применяемых технических средств и базового программного; обеспечения. Для работы необходимо иметь персональный компьютер фирмы IBM (XT или AT), или систему IBM PS/2, или другие совместимые с ними компьютеры. Очевидно, что нужно-иметь в наличии графический адаптер (типов CGA, EGA, VGA или HGA). Что касается программного обеспечения, то все программы написаны на языке Си. Из возможных компиляторов этого языка в книге применяется Турбо-Си фирмы Borland, который очень выгоден из-за его дешевизны. Если читатель является простым пользователем системы автоматизированного проектирования и не знаком с компиляторами и другими подобными делами, то он может просто заказать соответствующую дискету с программами. На дискете имеются исходные тексты программ (которые включены для экономии времени на набивку этих программ), а также выполняемые модули программ (файлы типа ххх.ЕХЕ), так что пользователь сразу же может запускать эти программы на выполнение. При этом не потребуется даже беспокоиться о "процедуре установки" —-программа сама определит, какой графический адаптер имеется в системе.
В учебной аудитории графический результат работы программы на персональном компьютере можно показать непосредственно сразу всем студентам (например, путем проецирования через кодоскоп) и программа D3O может оказаться полезной при изучении прикладной математики и ряда других предметов.
_______________________________________7
*Я Автор подчеркивает, что при обсуждении и решении таких Ш математических проблем, как поворот объектов в трехмерном Л пространстве, формирование пространственных кривых, отобра-Ш жение сплошных непрозрачных тел, выбор способов аппрокси-
• мации сферы, описание поверхностей с помощью В-сплайнов и В удаление невидимых линий, многое зависит от конкретных тех-т нических средств. Поэтому персональный компьютер можно
• считать просто примером инструмента, который практически
• реализует математические концепции.
• Язык программирования Си хорошо известен своей мобиль-.
• ностью, а компилятор Турбо-Си поддерживает как классический
• стиль Кернигана и Риччи, так и современный стандарт ANSI.
• Основное различие между этими двумя стилями подробно I описывается в параграфе 3.1.
I Данная книга очень тесно связана с двумя предыдущими I книгами автора "Принципы программирования в машинной I графике" (ППМГ) и "Машинная графика для персонального \ компьютера" (МГПК). Перспективное представление трехмер-I ных объектов и удаление невидимых линий подробно разбирались в ППМГ, а графические функции нижнего уровня были | предметом обсуждения в МГПК. Здесь эти важные темы затрагиваются лишь в качестве первичного средства, используемого в программе D3D. Проблема удаления невидимых линий здесь представлена лишь в общих чертах, но реализована более эффективным образом. Аналогично, графические функции нижнего уровня, исходные тексты которых приведены в параграфе 4.3, описаны очень подробно в книге МГПК. Однако в данной книге уделено некоторое внимание новым графическим средствам языка Турбо Си, доступным только в версиях, начиная с 1.5. Здесь описывается альтернативный графический пакет нижнего уровня, нашедший практическое применение (параграф 4.3). Кроме того, теперь возможно получить вывод графической информации на плоттер (графопостроитель), как будет описано в параграфе 4.5. Многие иллюстрации в этой книге получены именно таким образом с помощью плоттера типа 7475А фирмы Hewlett-Packard, установленного в Высшей школе Утрехта, в отделе Инженерной механики, Хильверсум.
Л. Аммерал
. лавление
ПРЕДИСЛОВИЕ
Часть I. ИНФОРМАЦИЯ ДЛЯ ПОЛЬЗОВАТЕЛЯ
Глава 1. ПРОЕКЦИИ В ТРЕХМЕРНОМ ПРОСТРАНСТВЕ
1.1. Координаты в трехмерном пространстве
1.2. Объект, точка наблюдения и перспективное
изображение
1.3. Работа с точками и управление курсором
1.4. Отрезки прямых линий, грани и объекты
1.5. Весь экран, невидимые линии, печать
1.6. Объектные файлы
1.7. Вогнутые вершины, отверстия
1.8. Преобразования
1.8.1. Поворот
1.8.2. Перенос
1.8.3. Масштабирование
1.8.4. Зеркальное отражение
Глава 2. ПРИКЛАДНЫЕ ПРОГРАММЫ И УТИЛИТЫ
2.1. Объекты, сформированные из прямых призм
2.2. Некоторые другие стандартные компоненты
2.3. Тела вращения и разрезы
2.4. Гладкие пространственные кривые
2.5. Кабели и узлы
2.6. Винт с прямоугольной резьбой
2.7. Расчлененные виды
Часть И. ПРИКЛАДНЫЕ ПРОГРАММЫ
Глава 3. ГЕНЕРАЦИЯ ВХОДНЫХ ФАЙЛОВ ДЛЯ
ПРОГРАММЫ D3D 104
3.1. Прототипы функций на языке Си 104
3.2. Цилиндры и призмы 114
3.3. Конусы и пирамиды 118
3.4. Традиционная аппроксимация сферы 120
3.5. Правильные многогранники 123
3.5.1. Тетраэдр 124
3.5.2. Гексаэдр 126
3.5.3. Октаэдр 127
3.5.4. Додекаэдр 128
3.5.5. Икосаэдр 137
3.6. Аппроксимация сферы 80 треугольниками 141
3.7. Поворот в трехмерном пространстве 146
3.8. Кривые типа В-сплайна 154
3.9. Кабели 160
3.10. Поверхности типа В-сплайна . 168
3.11. Пересечение цилиндров 179
3.12. Программа для прямоугольной винтовой резьбы 186
Часть III. ДЕТАЛИ ГРАФИЧЕСКИХ ПРОГРАММ
Глава 4. ПРОГРАММЫ D3D И PLOTHP 195
4Л. Введение 195
4.2. Основной модуль программы D3D 197
4.3. Функции графики нижнего уровня 203
4.4. Удаление невидимых линий 238
4.5. Утилита для плоттеров фирмы
HEWLETT-PACKARD 247
Приложение А. ПРОЕКТИРОВАНИЕ В ТРЕХМЕРНОМ
ПРОСТРАНСТВЕ (Исходный текст модуля D3D) 260
Приложение Б. ФУНКЦИЯ УДАЛЕНИЯ НЕВИДИМЫХ
ЛИНИЙ (Исходный текст модуля HLPFUN) 298
Литература 313
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 314


Hosted by uCoz