В работе с графическими средствами часто используются конс- танты модуля Graph. Ниже приводится список наиболее употреби-тельных констант этого модуля:
(коды ошибок при инициализации)
grOk = 0 (нет ошибок);
grNoInitGraph = -1 (графика не инициализирована);
grNotDetected = -2 (графическое устройство не обнаружено);
grFileNotFound = -3 (файл драйвера не найден);
grInvalidDriver = -4 (неправильный файл драйвера);
grNoLoadMem = -5 (нет памяти для драйвера);
grNoScanMem = -6 (нет памяти для просмотра областей);
grNoFloodMem = -7 (нет памяти для закраски областей);
grFontNotFound = -8 (фаты шрифта не найдены);
grNoFontMem = -9 (нет памяти для загрузки шрифта);
grInvalidMode = -10 (недопустимый графический режим);
grError = -11 (общая ошибка);
grIOError = -12 (ошибка ввода/вывода);
grInvalidFont = -13 (неверный файл шрифта);
grinvalidfontnum = - 14 (неверный номер шрифта);
(поддерживаемые графические драйверы) Detect = 0 (автоматическое распознавание); CGA = 1; MCGA = 2; EGA = 3; EGA64 = 4; EGAMono = 5; IBM8514 = 6 (зарезервировано); HercMono = 7; ATT400 = 8; VGA = 9; PC3270 = 10; | (стиль и толщина линий) SolidLn = 0 (сплошная); DottedLn = 1 (пунктирная); CenterLn = 2 (осевая); DashedLn = 3 (штриховая); UserBitLn = 4 (определенная пользователем) NormWidth = 1 (нормальная толщина); ThickWidth = 3 (жирная); |
(константы закраски) EmptyFill = 0 (нет закраски); SolidFill = 1 (сплошная закраска); LineFill = 2 (--- штриховка); LtSlashFill = 3 (/// штриховка); SlashFill = 4 (/// толстая штриховка); BkSlashFill = 5 (\\\ толстая штриховка); LtBkSlashFill = 6 (\\\ штриховка); HatchFill = 7 (+++ штриховка); XHatchFill = 8 (xxx штриховка); InterleaveFill = 9 (штриховка в клетку); WideDotFill = 10 (штриховка редкими точками); CloseDotFill = 11 (штриховка частыми точками); UserFill = 12 (штриховка пользователя); | (константы для Putimage) NormalPut = 0 (MOV); XORPut = 1 (XOR); OrPut = 2 (OR); AndPut = 3 (AND); NotPut = 4 (NOT); |
ПРИМЕР: Построить график функции
|
|
program grafiki_funk;
Uses Graph;
var
a,b,c,d,h,x,y:real;
de,re,n,k,u,v:integer;
const um=639;vm=469;
function f(x:real):real;
begin
f:=SQR(x);
end;
procedure vvod_dan(var a,b,c,d:real;
var n:integer);
begin
writeln('Параметры графика');
write('Слева:a='); readln(a);
write('Справа:b=');readln(b);
write('Снизу:c=');readln(c);
write('Сверху:d=');readln(d);
write('n=');readln(n); {количество точек на графике}
end;
begin
vvod_dan(a,b,c,d,n);
de:=detect;Initgraph(de,re,' ');
h:=(b-a)/n; {шаг}
for k:=0 to n do
begin
x:=a+h*k;
y:=f(x);
u:=round((x-a)*um/(b-a)); {для вывода точки координаты}
v:=round((d-y)*vm/(d-c)); {преобразуются к типу "integer"}
putpixel(u,v,7);
end;
readln {график сохраняется на экране до нажатия клавиши}
end.