2. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ ЯЗЫКА ПРОГРАММИРОВАНИЯ
§ 16. Текстовый и графический режимы
16.1. Подключение библиотечных модулей
Как уже отмечалось в п. 12.4, программное обеспечение среды программирования Borland Pascal предоставляет в распоряжение программиста библиотеку стандартных подпрограмм. Эта библиотека разделена на разделы (модули). Каждому модулю присвоено определенное имя, которое используется программистом для подключения этого модуля с целью его работоспособности.
Подключение всякого модуля (кроме System) осуществляется в декларативной части программы (разделе описаний):
Декларативная (описательная часть); | |
Выполняемая часть; |
Настоящий раздел посвящен изучению возможностей стандартного модуля Graph.
16.2. Текстовый режим
Вывод информации на экран может выполняться в различных режимах: текстовом или графическом. После загрузки среды программирования Borland Pascal экран находится в текстовом режиме.
12 (40,12) (1,50) (80,50) | Текстовый экран представляет собой совокупность строк, которые разбиваются на позиции. В каждой позиции можно разместить один знак, координаты которого (горизонтальная и вертикальная) задаются двумя целыми числами: номером позиции в строке и номером строки, например, точка экрана (40,12) находится в 40-й позиции 12-й строки. |
Чаще всего на экране в текстовом режиме размещается 25 строк по 80 знаков в каждой (возможны и другие текстовые режимы, например, 50 строк по 80 знаков).
Для управления режимами экрана, цветовой гаммой, звуком, кодами клавиатуры и др. используются подпрограммы модуля CRT (или OPCRT - проверьте имя Вашей библиотеки!). Для подключения модуля укажите его имя в разделе описания модулей: USES CRT; После этого пользователю доступны следующие процедуры и функции:
Подпрограмма | Назначение | Пример |
ClrScr; | Очистка экрана (заполнение цветом фона) и размещение курсора в левом верхнем углу | ClrScr; |
Delay (х); | Приостановка выполнения программы на х миллисекунд (практически значение х зависит от тактовой частоты процессора) | Delay (1000) ; |
GotoXY (X, Y); | Установка курсора в позицию экрана с координатами (X, Y) | Вывод текста, начиная с позиции (30,12): GotoXY (30,12); Writeln ('Здравствуйте!'); |
Sound (S); | Включение внутреннего динамика и генерация звука с частотой тона S герц: восьми нотам до, ре, ми, … первой октавы соответствуют частоты: 262,294,330, 249, 392, 440, 494, 524. При переходе к соседней октаве частоты изменяются в два раза. | Звучание звука с задержкой: {включение звукового сигнала частотой 1200 Гц} Sound (1200) ; {задержка звучания на время 1000 мс} Delay (1000) ; |
NoSound; | Выключение динамика | NoSound; |
| Установка цвета символов C (0-черный, 1-синий, 2-зеленый, 3-голубой, 4-красный, 5-фиолетовый, 6-коричневый, 7-светло-серый, 8-темно-серый, 9-ярко-синий, 10-ярко-зеленый, 11-ярко-голубой, 12-розовый, 13-малиновый, 14-желтый, 15-белый, 128-мерцание символа) | Вывод цветного текста: TextColor (2); GotoXY (30,5); Writeln ('Здравствуйте!'); TextColor (1); GotoXY (27,6); Writeln ('Начинаем изучать'); TextColor (14) ; GotoXY (34,7); Writeln ('язык'); GotoXY (27,8); Writeln ('программирования'); TextColor (4); GotoXY (33, 9); Writeln ('Паскаль'); |
TextBackGround (C) ; | Установка цвета фона C (8 неярких цветов с номерами от 0 до 7) | TextBackGround (4) ; |
* ReadKey | Задержка изображения и выход из программы при нажатии любой клавиши (кроме Alt, Ctrl и др.). Одновременно считывает код нажатой клавиши (#72 – стрелка вверх, #75 – влево, #77 –вниз, #80 – вправо, #27 – клавиша ESC. | Writeln ('Для выхода нажмите любую клавишу'); Readkey |
Пример 1. Поручите компьютеру исполнить музыкальную фразу «Жили у бабуси» (фа-ми-ре-до-соль-соль). Звучание должно сопровождаться выводом текста (как в «Караоке»).
Program Kleine_Musik;
Uses Crt;
Begin
ClrScr; Randomize ;
Sound (349); Delay (1000); Sound (330); Delay (1000);
GotoXY (30, 5); TextColor (2); Write ('Жили');
Sound (294); Delay (1000); Sound (262); Delay (1000);
GotoXY (30, 6); TextColor (4+128); {Мерцание букв красного цвета}
Write ('у бабуси'); Sound (392); Delay (2000); Sound (392); Delay (2000);
NoSound; Writeln ('Выход – любая клавиша'); {можно предусмотреть}
ReadKey {выход по нажатию клавиши Enter: Readln}
End.
![]()
1. Подберите подходящую длительность звучания с помощью процедуры Delay.
2. Напишите программу для получения собственной музыкальной композиции.
3. Напишите программу вывода на экран компьютера красочно оформленного текста с музыкальным сопровождением (например, компьютерной открытки-поздравления «Лучшему другу в день рождения»).
16.3. Графический режим
Всякое графическое изображение представляет собой совокупность точек – пикселей. Каждая из них задается своими координатами и цветом.
Количество отображаемых на экране пикселей называют разрешающей способностью (разрешением) графического экрана. Разрешение экрана может быть различным в зависимости от типа графического адаптера (печатной платы, на которой размещаются электронные компоненты видеодисплея) и графического драйвера (специальной программы, которая осуществляет управление графическим адаптером).
Рассмотрим программирование графики в стандартном видеорежиме среды программирования Borland Pascal, который поддерживается современными компьютерами: 640 х 480 хточек по горизонтали, 480 точек по вертикали, 16 цветов).
Графический экран как совокупность точек (пикселей) координатной плоскости, изображен на рисунке справа. Каждая точка (позиция) экрана задается номером пикселя по горизонтали и вертикали. Например, пиксель (150, 120) находится в 150-м столбце и 120-й строке. | (0,0) 150 (639,0) Х Y Y
(150,120) (0, 479) (639,479) |
Для управления графическим экраном предназначен модуль GRAPH. Сам модуль представляет собой отдельный файл Graph.tpu. При программировании он должен быть доступным для компилятора. Также доступным (для запуска программ) должен быть драйвер EGAVGA.bgi.
Для работы с графикой в Паскале в простейшем случае требуется выполнить следующие этапы:
Этапы работы | Действия программиста |
1. Подготовительная работа (копирование требуемой библиотеки graph.tpu и драйвера egavga.bgi в рабочую папку) | Скопировать файлы egavga.bgi (из папки BGI, вложенной в папку BР) и graph.tpu (из папки UNITS) в рабочую папку. |
2. Собственно программирование: 1) подключение модуля GRAPH; 2) инициализация графического режима (переход в графический режим): а) в разделе описания переменных описать две целочисленные переменные для указания драйвера и режима работы графического адаптера (например, gd, gr); б) в разделе операторов установить графический режим с помощью процедуры INITGRAPH | указать его имя в разделе описания модулей: USES GRAPH ; Var gd, gr : integer; {графический драйвер и графический режим} … Begin gd:=DETECT; INITGRAPH (gd, gr, ''); |
Общий вид оператора: INITGRAPH (драйвер, режим, путь);
| |
в) выполнение графических построений; г) в конце программы выполнить возврат в текстовый режим с помощью процедуры CLOSEGRAPH | … Readln ; CloseGraph ; End . |
§ 17. Создание изображений
17.1. Задание цвета
Прежде чем приступить к рисованию художник готовит чистый холст и цветные краски. При рисовании на Паскале холст (фон рисунка) можно очистить с помощью процедуры ClearDevice ; При этом холст заполняется фоновым цветом (по умолчанию – черным).
Для выбора цвета фона, на котором Вы будете выполнять рисунок, используйте процедуру SetBkColor: SetBkColor (номер цвета) ;
Эта процедура изменяет цвет фона, не изменяя изображений (в отличие от процедуры ClearDevice, которая стирает все изображения).
Для выбора цвета изображения используйте процедуру SetColor:
SetColor (номер цвета) ;
Цвет выбирайте из таблицы цветов п. 16.2. Можно также использовать соответствующие текстовые константы, например, процедуры SetColor(4); и SetColor(Red); равнозначны.
17.2. Рисование простых графических примитивов
Объект | Изображение | Запись в Паскале | |
Точка заданного цвета | X
Y | PutPixel (X, Y, цвет) ; | |
Отрезок прямой с заданными координатами его начала и конца | X1 X2
Y1 Y2 | Line (X1, Y1, X2, Y2) ; или Line (X2, Y2, X1, Y1) ; | |
Прямоугольник с заданными координатами его диагональных точек | X1 X2
Y1 Y2 | Rectangle (X1,Y1,X2,Y2); | |
Закрашенный прямоугольник с заданными координатами его диагональных точек | X1 X2
Y1 Y2 | Bar (X1,Y1,X2,Y2); | |
Окружность заданного радиуса с заданными координатами центра | X
Y | Circle (X, Y, R) ; |
Примеры. Требуется получить на экране компьютера изображения:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |












