[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Использование графики и звука в языке Turbo Pascal



Прежде, чем приступить к созданию графических программ на Turbo Pascal, необходимо ознакомиться с богатейшими графическими возможностями этого языка, сосредоточенными в стандартных библиотеках (модулях) GRAPH и CRT (название CRT происходит от Cathode-Ray Tube — электронно-лучевая трубка). Эти библиотеки содержат константы, переменные, процедуры и функции, рассчитанные на работу с монитором в текстовом и графическом режимах.

Подключение библиотек CRT и GRAPH к программе осуществляется с помощью ключевого слова Uses (англ. uses - использует) :
Uses Crt, Graph;

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


8.1. Библиотека C R T

Библиотека (модуль) CRT содержит константы, переменные,  
процедуры и функции, обеспечивающие управление текстовым режимом работы монитора и звуковым генератором.
Процедуры

ClrScr Очищает экран или окно и помещает курсор в верхний левый угол.

Delay(D: Word) Приостанавливает работу программы на указанное число D миллисекунд. Практически время задержки зависит от тактовой частоты процессора.

GotoXY(X, Y: Byte) Перемещает курсор в позицию X строки Y экрана.

NoSound Выключает источник звука.

Sound(F: Word) Запускает источник звука с частотой F (Гц).

TextBackGround(Color:Byte) Устанавливает цвет фона.

TextColor(Color: Byte) Устанавливает цвет символов.

Window(X1, Y1, X2, Y2: Byte) Определяет текстовое окно на экране. X1, Y1 - координаты левого верхнего угла окна, X2, Y2 -правого нижнего угла окна.

Функции

KeyPressed: Boolean Анализирует нажатие клавиши. Результат TRUE, если на клавиатуре нажата клавиша (кроме Alt, Ctrl и т.п.), и FALSE в противном случае. Не задерживает исполнение программы.

ReadKey: Char Читает символ с клавиатуры без эхоповтора на экране. Приостанавливает исполнение программы до нажатия на любую клавишу, кроме Alt, Ctrl и т.п.


8.2. Библиотека G R A P H

Библиотека (модуль) Graph содержит константы, процедуры 
и функции для управления графическим режимом работы монитора.
Константы цвета
Black = 0; {Черный} 
Blue = 1;   {Синий} 
Green = 2; {Зеленый} 
Cyan = 3; {Голубой} 
Red = 4; {Красный} 
Magenta = 5;  {Фиолетовый} 
Brown = 6;   {Коричневый} 
LightGray = 7; {Светлосерый} 
DarkGray = 8;   {Темносерый} 
LightBlue = 9; {Яркосиний} 
LightGreen = 10;  {Яркозеленый} 
LightCyan = 11;   {Яркоголубой} 
LightRed = 12; {Розовый} 
LightMagenta = 13; {Малиновый} 
Yellow = 14;   {Желтый} 
White = 15; {Белый}
Константы типов и толщины линий
SolidLn = 0;   {Сплошная} 
DottedLn = 1; {Точечная} 
CenterLn = 2; {Штрихпунктирная} 
DashedLn = 3;  {Пунктирная} 
NormWidth=1; {Нормальная толщина} 
ThickWidth = 3; {Тройная толщина} 
Константы шаблона штриховки
EmptyFill = 0; 
SolidFill = 1; 
LineFill = 2; 
LtSlashFill = 3; 
SlashFill = 4; 
BkSlashFill = 5; 
LtBkSlashFill = 6; 
HatchFill = 7; 
XHatchFill = 8; 
InterleaveFill = 9; 
WideDotFill = 10; 
CloseDotFill = 11; 
UserFill = 12. 
{Заполнение цветом фона} 
{Сплошная штриховка} 
{Горизонтальная штриховка} 
{/// штриховка} 
{/// штриховка толстыми линиями} 
{\\\ штриховка толстыми линиями} 
{\\\ штриховка} 
{Заполнение прямой клеткой} 
{Заполнение косой клеткой} 
{Заполнение частой сеткой} 
{Заполнение редкими точками} 
{Заполнение частыми точками} 
{Тип задается пользователем} 
Процедуры

Arc(X, Y: Integer; U1, U2, R: Word) Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y - координаты центра дуги, U1 - угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо, U2 - угол до конечной точки дуги, отсчитываемый так же, как U1, R - радиус дуги.

Bar(X1, Y1, X2, Y2: Integer) Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, Y2 - координаты левого верхнего и правого нижнего углов прямоугольника.

Bar3D(X1, Y1, X2, Y2: Integer; Glubina: Word; Top: Boolean) Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 - координаты левого верхнего и правого нижнего углов передней грани; Glubina - ширина боковой грани (отсчитывается по горизонтали), Top - признак включения верхней грани (если True - верхняя грань вычерчивается, False - не вычерчивается).

Circle(X, Y: Integer; R: Word) Рисует текущим цветом окружность радиуса R c центром в точке (X,Y).

ClearDevice Очищает графический экран, закрашивает его в цвет фона.

ClearViewPort Очищает выделенное графическое окно, закрашивает его в цвет фона.

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

Ellipse(X, Y: Integer; U1, U2, XR, YR: Word) Рисует дугу эллипса текущим цветом; X, Y - координаты центра эллипса; U1, U2 - углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, YR - горизонтальная и вертикальная полуоси эллипса.

FillEllipse(X, Y: Integer; XR, YR: Word) Рисует заштрихованный эллипс, используя X,Y как центр и XR,YR как горизонтальную и вертикальную полуоси эллипса.

FillPoly(N: Word; Var PolyPoints) Рисует и штрихует многоугольник, содержащий N вершин с координатами в PolyPoints.

InitGraph(Var Driver, Mode: Integer; Path: String) Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ''), считается, что драйвер находится в текущем каталоге.

Line(X1, Y1, X2, Y2: Integer) Рисует линию от точки X1, Y1 до точки X2,Y2.

LineTo(X, Y: Integer) Рисует линию от текущего указателя к точке X,Y.

MoveTo(X, Y: Integer) Смещает текущий указатель к точке X,Y.

OutTextXY(X, Y: Integer; TextString: String) Выводит текст в заданное место экрана.

PieSlice(X, Y: Integer; U1, U2, Radius: Word)Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X, Y - координаты  центра сектора круга; U1 и U2 - начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной вправо; Radius - радиус сектора.

PutPixel(X, Y: Integer; Color: Word) Выводит точку цветом Color с координатами X, Y.

Rectangle(X1, Y1, X2, Y2) Рисует контур прямоугольника, используя текущий цвет и тип линии. X1, Y1 - координаты левого верхнего угла прямоугольника,
X2, Y2 - координаты правого нижнего угла прямоугольника.

Sector(X, Y: Integer; U1, U2, XR, YR: Word) Рисует и штрихует сектор эллипса радиусами XR, YR с центром в X, Y от начального угла U1 к конечному углу U2.

SetBkColor(Соlor: Word) Устанавливает цвет фона.

SetColor(Соlor: Word) Устанавливает основной цвет, которым будет осуществляться рисование.

SetFillStyle(Pattern, Color: Word) Устанавливает образец штриховки и цвет.

SetLineStyle(LineStile, Pattern, Thickness: Word) Устанавливает толщину и стиль линии.

SetTextStyle(Font, Direction, CharSize: Word) Устанавливает текущий   шрифт, направление (горизонтальное или вертикальное) и размер текста.

SetViewPort(X1, Y1, X2, Y2: Integer; ClipOn: Boolean) Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет "отсечку" элементов изображения, не умещающихся в окне.

Функции

GetMaxX и GetMaxY Возвращает значения максимальных координат экрана в текущем режиме работы, соответственно, по горизонтали и вертикали.

GraphResult Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок, или возвращает числовой код ошибки (от -1 до -14).
 


8.3. Примеры графических программ 

Эти примеры иллюстрируют основные моменты, возникающие при написании графических программ: Даются окончательные подробно откомментированные тексты программ, которые могут служить основой для программ читателя. Для их работы необходимо наличие библиотечного файла GRAPH.TPU, драйвера видеорежима EGAVGA.BGI (или другого, в зависимости от типа монитора) и файлов шрифтов (*.chr).
Из-за недостатка места некоторые программы не содержат действий по выдаче сообщений о возможных ошибках графики, хотя они очень важны.
 

Содержание:

[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]