Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА №15 2011.doc
Скачиваний:
4
Добавлен:
14.09.2019
Размер:
3.13 Mб
Скачать

Лабораторная работа № 15

Тема: Составление программ для построения двумерных графических изображений.

Цель: Научиться составлять программы построения двумерных графических изображений.

Оборудование и/или программное обеспечение: ПК, операционная система Windows (Linux), Turbo Pascal 7.0

Теоретическая часть

У компьютерного монитора два режима работы – текстовый и графический.

В текстовом режиме минимальным объектом, отображаемым на экране, является алфавитно-цифровой или какой-либо иной символ. В обычных условиях экран монитора, работающего в режиме алфавитно-цифровой дисплея, может содержать не более 80 символов по горизонтали и 25 символов по вертикали. В графическом режиме минимальным объектом, выводом которого может управлять программист, является пиксел – графическая точка. Пиксел имеет меньшие размеры по сравнению с символом, они определяются разрешением монитора. Разрешение монитора задается в виде rx * ry, где rx - количество пикселов на экране по горизонтали, а ry – по вертикали. Размер пиксела (он определяет степень детализации изображения) можно получить, разделив геометрический размер экрана на разрешение. Минимально допустимое значение размер пиксела определяется техническими параметрами монитора («размер зерна»).

Графические координаты задают положение точки на экране дисплея. В качестве графических координат используются порядковые номера пикселов. Допустимый диапазон изменения графических координат составляет [0..rx - 1] для x-координаты и [0..ry - 1] для y-координаты. Точкой отсчета является верхний левый угол экрана. Значения x-координаты отсчитываются слева направо, а y-координаты – сверху вниз.

Чтобы работа в графическом режиме была возможна, видеоадаптер должен поддерживать работу дисплея в графическом режиме. Турбо Паскаль обеспечивает работу со следующими видеоадаптерами: CGA, MCGA, EGA, VGA, Hercules, AT&T 400, 3270 PC, IBM-8514.

Работой видеоадаптера управляет специальная программа, которая называется драйвером. Драйвер храниться в отдельном файле на диске и содержит как исполняемый код, так и необходимые ему для работы данные. Признак файла с драйвером – расширение .bgi имени файла. Имя файла с драйвером соответствует типу видеоадаптера компьютера.

При работе в графическом режиме большинство видеоадаптеров могут работать в нескольких графических режимах. Эти режимы различаются разрешением и набором доступных цветов.

В состав Турбо Паскаля входит модуль Graph, который содержит процедуры, функции, а также встроенные типы и константы, предназначенные для работы в графическом режиме. Чтобы воспользоваться возможностями модуля Graph, в начале программы его необходимо подключить

uses Graph;

Инициализация графического режима и выход из него

Переключение в графический режим работы дисплея выполняется вызовом процедуры InitGraph:

InitGraph(gd, gm, ‘c:\tp\bgi’);

Первый параметр в этой процедуре задает тип видеоадаптера, второй определяет видеорежим, а третий представляет собой строку с указанием расположения драйвера на диске. Для большинства современных видеоадаптеров можно использовать драйвер egavga.bgi. Пустая строка означает, что графический драйвер находится в том же каталоге, что и программа. Переключение в графический режим (инициализация графического режима) обычно сопровождается обработкой возможных ошибок инициализации. Эти ошибки могут быть связанны с отсутствием графического драйвера или неправильными значениями параметров. При наличии ошибки функция GraphResult возвращает отличные от нуля результат – код ошибки.

Завершение работы в графическом режиме производится с помощью процедуры CloseGraph, которая выгружает драйвер из памяти и восстанавливает предыдущий видеорежим.

Тип видеоадаптера может быть задан путем присваивания соответствующего значения переменной gd. При автоматическом распознавании видеоадаптера в правой части оператора присваивания

gd := Detect

используется встроенная константа Detect (она имеет нулевое значение).