1. Переключение системы на графический режим производится с помощью функции:
Initgraph(var graphdrive: integer, var graphmode: integer, pathtodriver: string)
-осуществляет поиск в каталоге, имя которого указано в аргументе pathtodriver , файла содержащего программу графического драйвера с номером , указанном в аргументе graphdriver; перемещение программы в оперативную память и установка графического режима, номер которого присвоен переменной, указанной в аргументе graphmode.
Адаптеры:
EGA - адаптер EGA
VGA - адаптерVGA
DETECT – автоматическое распознавание адаптера
Режим:
EGALO – 640х200 16 цветов 4 страницы
EGAHI – 640х350 16 цветов 2 страницы
VGALO – 640х200 16 цветов 4 страницы
VGAMED – 640х350 16 цветов 2 страницы
VGAHI – 640х480 16 цветов 1 страница
(* включение графического режима *)
GraphResult ; - выдача кода ошибки выполнения графической операции. GraphResult сбрасывается в 0 (нет ошибки ) после обращения к данной процедуре, поэтому следует сохранить значение кода ощибки во временной переменной , а затем проверить ее.Определены следующие константы:
Константа ошибки Графики |
Код Ошибки |
Соответствующее сообщение об ошибке |
GrOk GrNoInitGraph GrNotDetected GrFileNotFound GrInvalidDriver GrNoLoadMem GrNoScanMem GrNoFloodMem GrFontNotFound GrNoFontMem GrInvalidMode GrError GrIOError GrInvalidFont grInvalidFontNum |
0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 |
Нет ошибки Графика не инициализирована Графические средства не найдены Файл не найден Недопустимый драйвер Память не загружена Ошибка при просмотре памяти Ошибка пр закраске Шрифт не найден Шрифт не загружен в память Недопустимый режим Ошибка графики Ошибка ввода-вывода Недопустимый файл шрифта Недопустимый номер шрифта |
Если код ошибки равен grOk удачное выполнение графической операции
exit(1) – выход из программы по ошибке
uses graph;
var
grDriver: Integer;
grMode: Integer;
ErrCode: integer;
Begin
GrDriver:=Detect;
InitGraph(grDriver, grMode,’..\ bgi’);
ErrCode:=GraphResult;
If ErrCode=grOk then
Begin {do graphics}
Line(0, 0, GetMaxX, GetMaxY);
Readln;
CloseGraph;
End
Else
Writeln(‘Graphics error:’,GraphErrorMsg(ErrCode));
End.
2. Очистка графического экрана:ClearDevice;
3. Восстановление текстового режима: CloseGraph ;
4. Проверяет наличие соответствующих аппаратных средств и определяет , лалой графический режим и драйвер следует использовать , и присваивает переменной GraphDriver значение, равное номеру драйвера, а переменной GraphMode –значение равное номеру предполагаемого графического режима:
DetectGraph(GraphDriver, GraphMode);
/*Пример*/
uses Graph;
var
graphDriver: integer;
GraphMode: integer;
ErrCode:integer;
Begin
GraphDriver:=Detect;
DetectGraph(GraphDriver, GraphMode);
InitGraph(GraphDriver, GraphMode, ‘..\ bgi’);
If GraphResult()=grOk then exit(1);
ClearDevice;
Line(0, 0, GetMaxX, 0);
Readln;
CloseGraph;
End.
4. Определение текущего цвета фона графического окна: GetBkColor;
5. Возвращает максимальный номер цвета : GetMaxColor;
6. Сообщение о максимальном значении горизонтальной координаты экрана : GetMaxX;
7. Сообщение о максимальном значениии вертикальной координаты экрана :GetMaxY;
8. Перемещение графического курсора ( изменмние горизонтальной координаты графического курсора на величину Dx , и вертикальной координаты на величину Dy ): MoveRel(Dx, Dy: integer);
9. Перемещение графического курсора в точку с координатами (X,Y):MoveTo(X, Y: integer);
10. Изменение цвета фона графического окна : SetBkColor(ColorNum: word);
11. Выбор для вычерчивания линии с номером Color:SetColor(Color: word);
12. Задание графического окна с координатами (х1, у1) , (х2, у2).Аргумент Clip показывает , следует ли усекать фрагменты , выходящие за пределы окна: SetViewPort(x1, y1, x2, y2: integer; Clip: boolean);
13. Вычерчивание окружности с центром в точке (х, у), радиусом, заданным в аргументе Radius:Circle(x, y: integer ; Radius: word);
14. Вычерчивание эллиптической кривой с центром (х, у) и полуосямиXRadius и Yradius, начиная с угла StAngle и заканчивая углом EndAngle задаются в градусах. Вычерчивание против часовой стрелки. Если углы равны 0 и 360 гркдусов – вычерчивается полный эллипс: Ellipse(x, y: integer; StAngle, EndAngle: word; XRadius, YRadius);
15. Вычерчивание линии с началом в точке (х1, у1), концом в точке (х2, у2): Line(x1, y1, x2, y2: integer);
16. Вычерчивание точки с координатами (х, у) и цветом (Color): PutPixel(x, y: integer; Color: word);
17. Вычерчивание прямоугольника, заданного координатами противоположных верщин: Rectangle(x1, y1, x2, y2: integer);
18. Вычерчивание закрашенного эллипса в точке (х, у) и полуосямиXRadius и YRadius : FillEllipse(x, y: integer; Xradius, Yradius: word).
ПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИЙ
program graph1;
uses crt,graph;
const a=1;
var
gd,gm,Xend,Yend:integer;
mx,my,x,y,n:integer; k,l,t:real;
m:string;
function f(x:real):real;
begin
Уравнение своей функции;
end;
Begin
gd:=detect;
initgraph(gd,gm,'d:\bp\bgi');
{----------------------ОСИ--------------------}
Xend:=getmaxx;
Yend:=getmaxy;
mx:=20;
my:=20;
setcolor(3);
line(0,Yend div 2,Xend,Yend div 2);
line(Xend div 2,0,Xend div 2,Yend);
line(Xend,Yend div 2,Xend-5,(Yend div 2)-5);
line(Xend,Yend div 2,Xend-5,(Yend div 2)+5);
line(Xend div 2,0,(Xend div 2)-5,0+5);
line(Xend div 2,0,(Xend div 2)+5,0+5);
x:=-1; y:=getmaxy div 2;
repeat
line(x,y-3,x,y+3);
x:=x+mx;
until x>=getmaxx;
x:=getmaxx div 2; y:=-1;
repeat
line(x-3,y,x+3,y);
y:=y+my;
until y>=getmaxy;
{------------------X,Y------------------------}
setcolor(ReD);
settextstyle(5,0,1);
outtextxy(Xend-15,(Yend div 2)+10,'X');
settextstyle(5,0,1);
outtextxy((Xend div 2)-20,-10,'y');
x:=-1; n:=-16; y:=getmaxy div 2;
repeat
n:=n+1;
str(n,m);
x:=x+mx;
settextstyle(2,0,3);
outtextxy(x,y+3,m);
until n=15;
x:=getmaxx div 2; n:=12; y:=-1;
repeat
n:=n-1;
if n=0 then begin n:=n-1; y:=y+my end;
str(n,m);
y:=y+my;
settextstyle(2,0,3);
outtextxy(x+5,y,m);
until n=-11;
{-----------------ГРАФИК----------------------}
t:=-10;{начальное значение}
repeat
k:=mx*t;
l:=my*f(t);
putpixel((Xend div 2)+round(k),(Yend div 2)+round(l),10);
t:=t+0.1;
until t>=5000;{конечное значение}
{---------------------------------------------}
readln;
closegraph;
End.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.