Аммерал Л. 2 Машинная графика на персональных компьютерах. Пер. с англ.— М.: «Сол Систем», 1992.— 232 стр.: ил. ISBN 5-85316-002-8 (рус.) Излагается концепция построения программного обеспечения машинной графики нижнего уровня на языке Си для персональных компьютеров. Приводится пакет графических подпрограмм, реализующий ряд полезных функций, которые можно использовать в прикладных программах. В конце книги дается пример простой интерактивной программы для эскизирования и черчения. Для широкого круга читателей, применяющих персональные компьютеры IBM PC или совместимые с ними для работы с графической информацией.
ПРЕДИСЛОВИЕ
В предыдущей книге автора "Принципы программирования в машинной графике" были использованы четыре базовые подпрограммы initgr, move, draw, endgr и предполагалось, что все желающие могут найти соответствующие подпрограммы на своем компьютере. В машинной графике следует различать, по крайней мере, два уровня абстракции или, другими словами, два уровня программного обеспечения. На нижнем уровне находятся несколько удобных, но элементарных программ, а на высоком уровне они применяются в качестве аппаратно-независимых функций. В ранее упомянутой книге по машинной графике основное внимание было сфокусировано на более высоком уровне программного обеспечения и, вообще говоря, нижний уровень не очень интересовал автора. Но после выхода книги из печати издатель попросил представить все описанные программы на дискете для ПК фирмы IBM. При реализации запроса пришлось иметь дело и с нижним уровнем программного обеспечения. Как оказалось, для многих пользователей ПК вопрос "Как получить вывод в графической форме при программировании на языке Си?" является совсем не тривиальным. Стало ясно, что тема "растровой графики" вполне заслуживает отдельной книги.
В большинстве книг по машинной графике разница между "векторной графикой" и "растровой графикой" обсуждается с упором на характеристики технических средств. Из этого некоторые пользователи могут сделать ошибочный вывод, что их ориентированные на векторную графику элементарные подпрограммы будут непригодны для таких растровых устройств, как видеодисплеи и матричные принтеры. По нашему мнению наилучшим способом развеять такое недопонимание будет обсужде-
ние конкретных примеров использования как технических, так и программных средств.
Программное обеспечение, представленное и обсуждаемое в этой книге, было написано для ПК фирмы IBM и совместимых с ними компьютеров, использующих PC DOS или MS DOS, с обычным адаптером цветной машинной графики (CGA), или с монохромным графическим адаптером — хорошо известной "платой Геркулес" фирмы Hercules Computer Technology. Автор выражает надежду, что эта книга будет полезной и для тех пользователей, которые применяют другие технические средства. Тексты программ на языке Си содержат много сравнительно простых подпрограмм, их легко модифицировать при необходимости.
Некоторые специфические особенности технических и программных средств, обсуждаемые в этой книге, рано или поздно изменятся, поэтому может возникнуть вопрос о целесообразности использования книги в качестве учебника. Правда, при обучении всегда возникает проблема о разделении фундаментальных аспектов и технических деталей. Но фундаментальные аспекты лучше воспринимаются при иллюстрации конкретными данными. Студенты заинтересуются видеодисплеем с разрешением М х ./V пикселов только в том случае, если им будут названы реальные значения Л/ и N. С точки зрения преподавателя это вполне возможно и эти значения должны быть упомянуты . Автор надеется, что эта книга окажется полезной при преподавании практических вопросов применения вычислительной техники как в университетах, так и в технических институтах.
Есть много профессионалов, которые пишут программы для получения средств к существованию. Если они имеют дело с ПК \ фирмы IBM, или совместимыми с ними, то купив эту книгу они получат значительную экономию своих затрат. Они могут либо скопировать графические функции из книги, либо использовать заложенные основные идеи в своих собственных разработках.
И, наконец, книга может быть интересной для "квалифицированного любителя". В настоящее время многие имеют дома :омпьютеры, совместимые с ПК фирмы IBM, и некоторые из них накомы с развитыми языками программирования, например, с [зыком Си. В книге достаточно ясно показано, что язык Си впол-ie пригоден для получения графических изображений.
Л. Аммерал *
г
Оглавление
ПРЕДИСЛОВИЕ 5
Глава 1.ВВВДЕНИЕ 7
1.1. История появления этой книги 7
1.2. Несколько замечаний для программистов на языке си 9
1.2.1. Тип данных unsigned char 10
1.2.2. Непосредственный ввод с клавиатуры 10
1.2.3. Модели памяти; считывание и запись 12
1.2.4. Консольное прерывание 13
1.2.5. Доступ к портам ввода/вывода микропроцессора
8088 16
1.2.6. Регистры и программные прерывания 17
1.2.7. Максимальный размер стека 20
1.3. Графические адаптеры 21
Глава 2. ВЫЧЕРЧИВАНИЕ ЛИНИЙ 26
2.1. Экранные и пиксёлные координаты 26
2.2. Вычерчивание линий в целочисленной арифметике 29
2.3. Использование прерывания 10h для подсветки
пикселов 35
2.4. Непосредственный доступ к экранной памяти 36
2.5. Распознавание типа адаптера 40
2.6. Включение графического режима 44
2.7. Выход из графического режима 49
2.8. Аварийное завершение программы 52
2.9. Использование клавиши BREAK в графическом
режиме 54
2.10. Пакет для вычерчивания линий 56
2.11. Пример 61
Глава 3. РЕДАКТИРОВАНИЕ НА ЭКРАНЕ 63
3.1. Битовые операции в экранной памяти 63
3.2. Вращающаяся звезда 68
3.3. Движущаяся кривая 72
3.4. Быстрая программа для заполнения области 76
3.5. Обработка полутонов 83
Глава 4. ГРАФИКА И МАТРИЧНЫЕ ПРИНТЕРЫ 93
4.1. Принципы работы матричных принтеров 93
4.2. Программы, печатающие графический результат 95
4.3. Печать экранного дампа 104
4.4. Распечатка окружности в виде окружности 107
4.5. Тексты программ модуля GRPACK.C 114
Глава 5. ВЫВОД ТЕКСТА В ГРАФИЧЕСКОМ РЕЖИМЕ 130
5.1. Битовые комбинации для символов 130
5.2. Функция для вывода текста в графическом режиме 132
5.3. Формирование печатаемых символов 135
5.4. Программный генератор для шрифтов 142
5.5. Демонстрационная программа 148
5.6. Разработка новых символов 150
Глава 6. DIG — СИСТЕМА ИНТЕРАКТИВНОЙ
ГРАФИКИ 152
6.1. Введение - 152
6.2. Перемещение курсора 153
6.3. Операции по эскизированию 159
6.4. Руководство для пользователя 165
6.4.1. Начало и окончание программы. Рабочие
состояния 166
6.4.2. Курсор, положение пера и режимы черчения 168
6.4.3. Рабочее состояние "альфа" (текст) 169
6.4.4. Наклонные линии и наборы маркированных точек 170
6.4.5. Команды блокирования 172
6.4.6. Векторы, окружности и дуги 173
6.4.7. Задание новой точки 176
6.4.8. Применение матричного принтера; заполнение
обдасти 177
6.4.9. Кривая типа В-сплайна 179
6.4.10. Сводка команд 181


Hosted by uCoz