Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lrgraph

.pdf
Скачиваний:
12
Добавлен:
11.03.2016
Размер:
749.88 Кб
Скачать

Калининградский государственный технический университет

КОМПЬЮТЕРНАЯ ГРАФИКА (КГ)

Методические указания к лабораторным работам по курсу КГ для направления 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 с.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]