lrgraph
.pdfКалининградский государственный технический университет
КОМПЬЮТЕРНАЯ ГРАФИКА (КГ)
Методические указания к лабораторным работам по курсу КГ для направления 550200 /Автоматизация и управление/ и 552900 /Технология, оборудование и автоматизация машиностроительных производств/
Часть I. Средства алгоритмического языка
Калининград
1998
.
2
УДК 681.327.11:003.6(076)
УТВЕРЖДЕНО Ректором Калининградского государственного технического университета
"___"____________________1998 г.
АВТОР - Высоцкий Л.Г., старший преподаватель кафедры систем управления и вычисли-
тельной техники Калининградского государственного технического университета
Методические указания рассмотрены и одобрены кафедрой систем управления и вычисли-
тельной техники Калининградского государственного технического университета 14 апре-
ля 1997 г., протокол N 4 .
РЕЦЕНЗЕНТ - кафедра систем управления и вычислительной техники Калининградского государственного технического университета
Калининградский государственный технический университет,
1998 г.
ВВЕДЕНИЕ
Рассматриваемые методические указания к лабораторным работам по курсу "Ком-
пьютерная графика" (часть I) охватывают круг вопросов, связанных с изучением и ис-
пользованием существующих графических средств алгоритмического языка высокого уровня. Представляемые лабораторные работы направлены на исследование режимов работы дисплея персонального компьютера, создание простейших статических и ди-
намических изображений средствами псевдографики, практическое закрепление на-
выков синтеза алгоритмов двумерных и трехмерных графических изображений в ста-
тике и динамике. Задачи подобного уровня решаются при создании интерфейса взаи-
модействия с программой любой направленности, моделировании на компьютере по-
ведения роботов-манипуляторов, автоматических технологических линий и другого производственного оборудования. В качестве алгоритмического языка поддержки вы-
бран ТурбоПаскаль, сочетающий концептуальную простоту изучения и вычислитель-
ную мощность использования. Выполнение каждой лабораторной работы базируется на индивидуальном задании, выбираемом преподавателем для каждого студента из списка, представленного в конце работы.
4
Лабораторная работа №1
Синтез статического изображения средствами псевдографики
Цель работы: исследование режимов работы дисплея компьютера и алгоритмов формирования статического изображения средствами псевдографики.
Введение
Широкое внедрение в инженерную деятельность персональных компьютеров (ПК) позволило резко расширить сферу применения графических изображений, как наи-более информативных средств для восприятия и передачи информации /1/. Сущест-вующие средства формирования изображений определяются одним из двух принципи-ально различающихся режимов работы адаптера (контроллера) дисплея - текстовым или графическим. В текстовым режиме экран монитора разбивается на матрицу знакомест размером /2/ 40 25, 80 25, 80 43
или 80 50 в зависимости от типа адаптера и номера формата. Стандартным считается формат, разбивающий все пространство экрана на 25 строк длиною в 80 знакомест. В то же время адптер EGA допускает формат 43 80, а VGA и выше - 50 80. Каждое знакоместо характеризуется следующими параметрами:
координатами;
содержимым;
цветом символа;
цветом фона.
Координаты знакоместа - номера строки и столбца, на пересечении которых на-
ходится искомое знакоместо. Нумерация строк производится сверху вниз (1..25 или 0..24), а столбцов слева направо (1..80 или 0..79).
Содержимое знакоместа - один из символов расширенного набора ASCII, назы-
ваемого обычно кодовой страницей и загружаемого в память ПК в момент включения компьютера или запуска программного пакета. Набор содержит 256 символов /2/, из которых первые 128 обычно постоянны для всех кодовых страниц, а остальные 128 меняются в зависимости от алфавита страны или назначения программного пакета. Все символы имеют свои чи-
5
словые коды в диапазоне от 0 до 255, т.е. для хранения содер-жимого одного знакоместа тре-
буется один байт. В то же время данный код позволяет отобразить любой символ кодовой таблицы путем набора кода на правой цифровой клавиатуре при нажатой клавише Alt.
В современных адаптерах для кодировки цвета символа обычно используется четыре бита, что дает 16 возможных цветов, нумеруемых
0чѐрный
1синий
2зеленый
3голубой
4красный
5розовый
6коричневый
7серый
8темно-серый
9ярко-синий
10ярко-зеленый
11ярко-голубой
12ярко-красный
13ярко-розовый
14желтый
15белый
Для окраски фона обычно используются первые 8 цветов палитры, что требует для ко-
дировки 3 бита. Ещѐ один бит предназначен для фиксации режима мигания сим-вола или его отсутствия. В видеопамяти ПК хранится информация только о трех послед-них параметрах знакоместа, представляемая одним байтом. Таким образом, при работе в символьном режиме одно знакоместо требует два байта видеопамяти (один на описа-ние содержимого, другой - на описание параметров), а общая потребность в такой памя-ти составляет всего 4 Кбайта (фор-
мат 80*25) или 8 Кбайт (80*50). Низкая требова-тельность к видеопамяти делает символьный режим привлекательным для синтеза простейших графических изображений (таблиц, столби-
6
ковых диаграмм, компьютерных игр). Для этого в кодовую таблицу ПК вводятся символы псевдографики /3/, вывод которых осуществляется по правилу, описанному ранее.
Описание среды программирования
Статическое графическое изображение в символьном режиме может быть созда-но средствами любого текстового редактора (Лексикона, Фотона, WD и др.), но подоб-ный под-
ход не позволяет использовать различные цвета в силу отсутствия соответ-ствующих средств в составе указанных пакетов. Такими средствами обладают современ-ные языки программи-
рования (Паскаль, Си, Бейсик и др.), поэтому данная лабораторная работа заключается в син-
тезе программы на языке Паскаль, создающей на экране требу-емое изображение.
Обычно для вывода информации на экран в языке Паскаль используются следу-ющие процедуры /4, 5/, находящиеся в модуле Crt:
TextBackground(цвет) - задает цвет фона знакоместа. Цвет задается номерами 0 7.
TextColor(цвет) - задает цвет символа посредством номеров 0 15.
Window(x1, y1, x2, y2) - задает размеры окна на экране и помещает курсор в левый верхний угол окна с координатами (1, 1), так как нумерация строк и столбцов в Паскале начи-
нается с 1. При входе в среду ТурбоПаскаль по умолчанию устанавливается окно с парамет-
рвми (1, 1, 80, 25). При установке окна меньшего размера весь ввод/вывод прикладной про-
граммы осуществляется через него. При возврате к полному экрану не-обходимо явно выпол-
нить процедуру Window(1, 1, 80, 25).
ClrScr - очищает текущее окно, заполняя его цветом фона и помещает курсор в его верхний левый угол.
GotoXY(x, y) - перемещает курсор к элементу экрана с заданными координатами x, y.
Сам же вывод на экран конкретного символа или символьной строки произво-дится процедурами Write или Writeln. Фиксация синтезированного изображения на не-
определенное время (до нажатия любой клавиши) возможна с помощью циклической струк-
туры repeat .until и процедуры KeyPressed, возвращающей значение true при на-жатии лю-
бой клавиши. На конкретное время изображение на экране фиксируется с помощью процеду-
ры Delay(число миллисекунд).
7
Пример программы:
Задание: заполнить экран прямоугольными рамками, окрашенными во все возможные цвета фона. В центре экрана написать номер группы черным цветом. Блок-схема программы представлена на рис. 1.1.
Блок-схема программы
н
i= 0, 7
|
Установка |
|
Задание |
|
|
цвета фона |
|
черного цвета |
|
|
|
|
|
|
|
|
|
|
|
|
Установка |
|
|
Вывод номе- |
|
размеров окна |
|
|
ра группы |
|
|
|
|
|
|
Закраска |
|
|
|
|
окна |
|
к |
|
|
Рис. 1.1 |
|||
|
|
Листинг программы
program Graph; uses
Crt; {подключение модуля с требуемыми процедурами} var
i:integer; {задание параметра цикла} begin {начало исполнительной части}
for i:=0 to 7 do {задание параметров цикла} begin
TextBackground(i); {установка цвета фона}
Window((i+1)*4, i+1, 80-i*4, 25-i); {установка параметров окна}
ClrScr; {закраска окна}
8
end; {выход из цикла}
TextColor(0); {установка цвета символов}
GotoXY(9, 5); {установка курсора в требуемую позицию}
Write('93-BT'); {вывод текстового сообщения} repeat
until KeyPressed; {задержка изображения до нажатия любой клавиши} end.
Варианты задания
Создать программу, реализующую средствами псевдографики языка программирова-
ния TurboPascal следующее изображение:
1) верхнее меню интегрированной системы (ИС) TurboPascal;
2)нижнее меню ИС TurboPascal;
3)окно команды File ИС TurboPascal;
4)окно команды Edit ИС TurboPascal;
5)окно команды Search ИС TurboPascal;
6)окно команды Run ИС TurboPascal;
7)окно команды Compile ИС TurboPascal;
8)окно команды Debug ИС TurboPascal;
9)окно команды Tools ИС TurboPascal; 10) окно команды Window ИС TurboPascal; 11) окно команды Help ИС TurboPascal; 12) стилизованное изображение частокола;
13) стилизованное изображение елочки со звездами высото1 15 строк; 14) двухэтажный дом с окнами; 15) стилизованный перекресток с двумя автомобилями;
16) горизонтальный спидометр автомобиля до 200 км; 17) стилизованное изображение письменного стола с двумя тумбами по 3 ящика; 18) план компьютерного класса;
19) стилизованный вертикальный градусник в диапазоне –30 60 градусов;
9
20)10 ступенек лестницы, вид сбоку;
21)стилизованное изображение маяка;
22)один ряд алфавитно-цифровой клавиатуры;
23)заполненное поле игры «крестики-нолики» размером 3х3;
24)название группы высотой в 12 строк;
25)фигура ┼┼ высотой 15 строк;
26)фигура высотой 16 строк.
Выполнение лабораторной работы
1.Получить задание у преподавателя.
2.Написать и отладить на компьютере программу, реализующую требуемое изображе-
ние.
3.Результат работы программы продемонстрировать преподавателю.
4.Напечатать синтезированное изображение и листинг программы.
Содержание отчета
Отчет включает:
1)содержание задания;
2)блок-схему программы;
3)листинг программы и напечатанное изображение.
Контрольные вопросы
1.Какие требования предъявляет текстовый режим к размеру видеопамяти?
2.Чем определяется номенклатура символов, доступных в символьном режиме?
3.Можно ли менять номенклатуру символов, доступных в символьном режиме?
4.Сколько параметров необходимо указать при задании окна?
5.Какие параметры знакоместа можно менять средствами языка TurboPascal?
10
Рекомендуемая литература
1.Роджерс Д. Алгоритмические основы машинной графики. - М.: Мир, 1989. - 504 с.
2.Нортон П. Персональный компьютер фирмы IBM и операционная система MS-DOS. - М.:
Радио и связь, 1991. - 416 с.
3.Фигурнов В.Э. IBM PC для пользователя. - М.: Финансы и статистика, 1990. - 240 с.
4.Белецкий Я. Турбо Паскаль с графикой для персональных комьютеров - М.: Машино-
строение, 1991. - 320 с.
5.Епанешников А.М., Епанешников В.А. Программирование в среде TurboPascal 7.0. - М.: "ДИАЛОГ_МИФИ", 1993. - 288 с.
6.Мизурохи С.В. TURBO PASCAL и объектно-ориентированное программирование. - М.:
Финансы и статистика, 1992. - 192 с.
7.Вальвачев А.Н., Крисевич В.С. Программирование на языке ПАСКАЛЬ для персо-нальных ЭВМ ЕС. - Мн.: Высш. шк., 1989. - 223 с.