Константы типов и толщины линий




Графика в паскале.

Графические функции паскаля описаны в модуле GRAPH. Модуль подключается к программе с помощью ключевого слова USES.
Пример:

program t34;

Uses graph;

Var...

...

Основные процедуры и функции модуля GRAPH.

Процедура InitGraph инициирует перевод видеоадаптера в видеорежим. Общий вид:

 

InitGraph (Driver,Mode,Path);

 

Driver - параметр, определяющий графический драйвер; 0 – автоопределение.
Mode - параметр, задающий один из графических режимов. Для VGA 0 - 640X200 16 цветов, 1- 640Х350 16 цветов, 2 - 640Х480 16 цветов. Если стоит автоопределение, то параметр Mode надо задавать, выбор будет сделан в пользу максимально возможного из режимов.
Path - имя файла и путь графического драйвера. Указывать надо только путь.


Первые два аргумента у процедуры InitGraph - параметры-переменные. Пример:

var gd,gm: integer;

.........

gd:=9;

gm:=2;

InitGraph (gd,gm,'d:\tp7\bgi\');

 

Процедура DetectGraph - тестирует аппаратуру и определяет, какой графический драйвер и режим (максимально допустимые) подходят для данного видеоадаптера.
Общий вид:

DetectGraph (Driver,Mode);

Driver - параметр, определяющий подходящий тип графического драйвера.
Mode - параметр, задающий один из графических режимов, поддерживаемых данным драйвером.
Пример

USES GRAPH

VAR D,M:INTEGER;

BEGIN

DetectGraph(D,M);

Write('Тип графического адаптера: ',D,'Графический режим: ',M);

END.

Если видеоадаптер не был найден, то переменная Driver вернет значение -2.

Функция GraphResult - возвращает код ошибки графической операции, выполнявшейся последней.
Общий вид:

GrapgResult;

Пример

USES GRAPH

VAR H,k,l: INTEGER;

BEGIN

DetectGrahp(k,l);

InitGraph(k,l,'d:\tp7\bgi\');

H:=GraphResult;

If h=0 then write('OK') elseWrite('Error');

END.

Значения возвращаемые GraphResult:
0 - без ошибок
-1 - не инициализирован граф. режим
-2 - не удалось определить тип адаптера
-3 - не обнаружен файл с драйвером
-4 - Обнаруженный файл не содержит соответствующего драйвера
-5 - недостаточно памяти для загрузки драйвера
-6 - недостаточно памяти для просмотра областей
-7 - недостаточно памяти для заполнения областей
-8 - не обнаружен файл со шрифтом
-9 - недостаточно памяти для загрузки шрифта
-10 - недопустимый режим для выбранного драйвера
-11 - общая ошибка
-12 - ошибка ввода-вывода
-13 - неверный формат шрифта
-14 - неверный номер шрифта

Функция GraphErrorMsg - возвращает текст, по-английски, сообщения об ошибке.
Пример.

...

GraphResult(i);

GraphErrorMsg(i);

...

Процедура RestoreCrtMode - осуществляет переход в видеорежим (текстовый), который использовался до перехода в графический режим. Не освобождает память и не сбрасывает параметры графического режима.
Пример.

...

RestoreCrtMode:

...

Процедура SetGraphMode - устанавливает для используемого драйвера новый графический режим и очищает экран. Переходит в один из доступных режимов для данного драйвера (в отличие от InitGraph). Общий вид:

SetGraphMode(Mode);

Mode - целое число от 0 до 5, определяющее режим. С помощью SetGraphMode можно переходить в другой графический режим, отличный от используемого. Совместно с процедурой RestoreCrtMode может использоваться, чтобы временно и быстро переходить из графического в текстовый режим и обратно.
SetGraphMode устанавливает для всех графич. параметров (палитра, цвет, и т. п.) значения по умолчанию, заданные для данного режима.

Функция GetGraphMode - возвращает числовой код используемого в данный момент графического режима. Для VGA это 0,1 или 2.
Пример

...

Var I: integer;

...

I:=GetGraphMode;:

...

Функция GetModeName - возвращает строку с именем используемого графического режима.
Пример.

...

Var I: integer;

...

I:=GetGraphMode;

Write('Графический режим: ',GetModeName(i));

...

Функция GetDriverName - возвращает имя (без расширения) используемого в данный момент драйвера.
Пример.

...

Var I:string;

...

I:=GetDriverName;

Write('Драйвер: ',i);

...

или

...

Write('Драйвер', GetDriverName);

...

Функция GetMaxMode - возвращает код предельного графического режима загруженного драйвера, в котором может работать графический адаптер.

 

Процедура GetModeRange - возвращает диапазон допустимых графических режимов для указанного драйвера.
Общий вид:

GetModeRange(Driver,MinMode,MaxMode);

Driver - код графического драйвера, MinMode - код <минимального> режима, MaxMode - код предельно допустимого режима для данного драйвера.
Пример.

...

Var minmod,maxmod:integer;

...

GetModeRange(9,minmod,maxmod);

Write('Минимальный режим: ',minmode,'Предельный режим: ',maxmode);

...

Процедура CloseGraph - Восстанавливает видеорежим (текстовый), использовавшийся до перехода в графический режим, освобождает память от графических буферов и драйвера.

 

...

Работа с изображениями.

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

Определение. Тип Word - целое число от 0 до 65535.

Процедура SetColor - устанавливает текущий цвет, взятый из палитры.
Общий вид:

SetColor(Color);

Color имеет тип word; Пример:

...

SetColor(2);

...

SetColor(RED);

...

Таблица цветов. 0 - Black
1 - Blue
2 - Green
3 - Cyan - бирюзовый
4 - Red
5 - Magenta - фиолетовый
6 - Brown
7 - LightGray - светло-серый
8 - DarkGray - темно-серый
9 - LightBlue
10 - LightGreen
11 - LightCyan
12 - LightRed
13 - LightMagenta
14 - Yellow
15 - White
128 - Blink - мерцание

Функция GetColor - возвращает код текущего цвета - значение типа Word.
Пример.

...

Var I:word;

...

I:=GetColor;

...

Функция GetMaxColor - возвращает наибольший код цвета, значение типа Word, который может быть передан процедуре SetColor в качестве параметра.

Процедура SetBkColor - устанавливает цвет фона из палитры. Устанавливается для всего экрана.
Общий вид:

SetBkColor(Color); Color - Значение типа Word -

новый цвет фона.

Пример.

SetBkColor(RED);

или

SetBkColor(4);

Функция GetBkColor - возвращает значение типа Word - код используемого фона.

Процедура SetRGBPalette - изменяет компоненты палитры при использовании драйверов VGA и IBM 8514.
Общий вид:

SetRGBPalette(ColNum,RedVal, GreenVal, BlueVal);

ColNum - код цвета из палитры.
RedVal, GreenVal, BlueVal - определяют интенсивность соответственно красной, зеленой и синей составляющей для цвета с номером ColNum. ColNum,RedVal, GreenVal, BlueVal - значения типа Integer.
Для драйвера IBM 8514 ColNum может изменяться в пределах от 0 до 255, для VGA от 0 до 15.

Процедура SetFillStyle - определяет шаблон и цвет заполнения.
Общий вид:

SetFillStyle(Pattern,Color);

Pattern - шаблон заполнения, Color - цвет заполнения


Шаблоны заполнения:

Константа код заполнение
EmptyFill   Сплошное заполнение цветом фона(без узора)
SolidFill   Сплошное заполнение текущим цветом, который устанавливается процедурой SetColor.
LineFill    
LtSlashFill    
SlashFill    
BkSlashFill    
LtBkSlashFill    
HatchFill    
XhatchFill    
InterleaveFill    
WideDotFill    
CloseDotFill    
UserFill   Шаблон заполнения,определенный пользователем.

По умолчанию используются константа SolidFill и цвет с максимальным номером из текущей палитры. Шаблон и цвет, определенные процедурой SetFillStyle, применяются всеми процедурами и функциями, в которых используется операция заполнения.

Функции GetX и GetY - возвращают координаты по горизонтали (Х) и вертикали (Y) указателя текущей позиции. Координаты GetX и GetY отсчитываются от левого верхнего угла экрана (активного окна), начиная с нуля.
Пример.

...

Var x,y: integer;

...

x:=GetX;

y:=GetY;

...

Функции GetMaxX и GetMaxY - возвращают текущие значения (типа Integer) разрешения, т.е. количество точек (пикселей) по осям Х и Y, эти значения зависят от выбранного драйвера и разрешения.

Процедура MoveTo - перемещает указатель текущей позиции в точку с заданными координатами.
Общий вид:

MoveTo(x,y);

x и y - координаты точки на экране, куда будет перемещен указатель.
Пример.

...

MoveTo(10,30);

...

Процедура MoveRel - перемещает указатель на заданное расстояние, определяемое приращением координат Х и Y, относительно его текущего местоположения.
Общий вид:

MoveRel(Dx,Dy);

Пример, пусть указатель находится в точке (10,44).

...

MoveRel(5,8);(*переместит указатель в точку (15,52)*)

...

MoveRel(-10,-2):(*переместит указатель из тоски (15,52) в точку (5,50)*)

...

Процедура Line - отображает прямую линию между двумя точками, координаты которых заданы в качестве параметров.
Общий вид:

Line(x1,y1,x2,y2);

x1,x2,y1,y2 имеют тип Integer.
Пример.

Var x1,x2,y1,y2: integer;

...

Line(0,0,50,67)

...x1:=56;y1:=78;x2:=1,y2:=100;

Line(x1,y1,x2,y2);:

...

Процедура LineTo - проводит прямую от текущего положения указателя до точки заданной координатами.
Общий вид:

LineTo(X,Y);

X иY - координаты точки.

Процедура LineRel - отображает прямую от текущей позиции и до точки, координаты которой получены приращением по Х и У.
Общий вид:

LineRel(Dx,Dy);

Dx,Dy - приращения по Х и Y,имеют тип Integer.
Пример, пусть указатель находится в точке (45,17).

...

LineRel(40,40);(*проведет прямую из точки с координатами (45,17)

до точки с координатами (85,57)*)

...

Функция GetPixel - возвращает значение типа Word, соответствующее цвету пикселя, координаты которого (X,Y).
Общий вид:

GetPixel(X,Y);

Пример.

...

Var I:Word;

...

I:=GetPixel(45,45);

...

Процедура PutPixel - отображает точку в заданной позиции и заданным цветом
Общий вид:

PutPixel(x,y,color);

X,Y - координаты точки (типа Integer), Color - ее цвет (типа Word).
Пример.

...

PutPixel(23,45,4);

...

Процедура Circle - вычерчивает окружность.
Общий вид:

Circle(x,y,Rad);

X,Y - координата точки, Rad - радиус окружности в пикселях по горизонтали.
Пример:

...

Circle(45,67,50);

...

Процедура Ellipse - вычерчивает эллипс.
Общий вид:

Ellipse(X,Y,BAngle,Eangle,XRad,YRad);

X,Y - координаты центра, Bangle и Eangle - начальный и конечный углы дуги (в радианах!), XRad,Yrad - горизонтальный и вертикальных радиус эллипса.
Пример.

...

Ellipse(200,200,50,56,30,20);

...

 

 


 

Модуль 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; {Тройная толщина}

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: