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


Использование графики и звука в языке 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.1. Модуль 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).
Из-за недостатка места некоторые программы не содержат действий по выдаче сообщений о возможных ошибках графики, хотя они очень важны.
 

Содержание:

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