240 likes | 501 Views
x. (0;0). Графический режим Модуль Graph. Максимальные разрешения: CGA = 640х200 EGA = 640х350 VGA = 640x480. y. В графическом режиме можно задавать цвет каждого пикселя независимо от других. Процедуры и функции модуля Graph.
E N D
x (0;0) Графический режимМодуль Graph Максимальные разрешения: CGA = 640х200 EGA = 640х350 VGA = 640x480 y В графическом режиме можно задавать цвет каждого пикселянезависимо от других.
Процедуры и функциимодуля Graph InitGraph(gd,gm,path); - процедура, инициализирующая графический режим работы видеоадаптера gd: integer – графический драйвер gm: integer – графический режим path: string – путь к файлу драйвера
Файлы драйверов herc.bgi cga.bgi egavga.bgi … BGI = Borland Graphics Interface Файлы обычно располагаются в каталоге BGI вместе с файлами графических шрифтов.
Полезные функции GetMaxX: integer; – возвращает максимальную координату по х GetMaxY: integer;–возвращает максимальную координату по y GetMaxY + 1 GetMaxX + 1
Закрытие графического режима CloseGraph; - процедура закрывает графический режим и переводит видеоадаптер обратно в текстовый режим работы
Пример использованияInitGraph и CloseGraph const GrPath = ‘c:\bp\bgi’; var gd, gm: integer; begin … { работа в текстовом режиме } gd:=EGA; gm:=EGAHi; InitGraph(gd, gm, GrPath); …{ работа в графическом режиме } CloseGraph; … { работа в текстовом режиме } end.
Анализ графических ошибок GraphResult: integer – функция, возвращающая код последней графической ошибки (0 = нет ошибки) GraphErrorMsg(code:integer): string – функция, возвращает строку описания ошибки по коду ошибки
Пример инициализации с анализом ошибок const GrPath = ‘c:\bp\bgi’; var gd, gm, code: integer; begin … gd:=EGA; gm:=EGAHi; InitGraph(gd, gm, path); code:=GraphResult; if code<>0 then begin writeln(‘Произошла графическая ошибка!’); writeln(GraphErrorMsg(code)); writeln(‘Нажмите Enter…’); readln; halt(1); { выход из программы } end; …{ работа в графическом режиме } CloseGraph; … end.
Работа с отдельными пикселями PutPixel(x, y, c); - задаёт цвет (c) пикселяс координатами (x, y) GetPixel(x,y): integer; - возвращает цвет пикселя с координатами (x, y)
Графические примитивы Circle(x,y,R); x2,y2 R Line(x1,y1,x2,y2); x,y x1,y1 Rectangle(x1,y1,x2,y2); Bar(x1,y1,x2,y2); x1,y1 x1,y1 x2,y2 x2,y2
Графические примитивы Arc(x,y,SA,EA,R); PieSlice(x,y,SA,EA,R); EA R SA EA SA (x,y) (x,y) Ellipse(x,y,SA,EA,XR,YR); FillEllipse(x,y,XR,YR); SA EA YR YR XR XR (x,y) (x,y)
Направление отсчёта углов 90 180 0 270
SetColor(c); - устанавливает цвет линий SetLineStyle(s,p,th); - устанавливает стиль линий • SolidLn 0 • DottedLn 1 • CenterLn 2 • DashedLn 3 • UserBitLn 4 (User-defined line style) • NormWidth 1 • ThickWidth 3
Заливка SetFillStyle(p,c);- устанавливает шаблон и цвет заливки Constant │ Value │ Meaning ═══════════════╪═════════╪═════════════════════════ EmptyFill │ 0 │ Uses background color SolidFill │ 1 │ Uses draw color LineFill │ 2 │ --- fill LtSlashFill │ 3 │ /// fill SlashFill │ 4 │ /// thick fill BkSlashFill │ 5 │ \thick fill LtBkSlashFill │ 6 │ \fill HatchFill │ 7 │ Light hatch fill XHatchFill │ 8 │ Heavy cross hatch InterleaveFill │ 9 │ Interleaving line WideDotFill │ 10 │ Widely spaced dot CloseDotFill │ 11 │ Closely spaced dot UserFill │ 12 │ User-defined fill
Заливка замкнутой области FloodFill(x,y,b); - закрашивает замкнутую область, ограниченную линией цвета b (x;y)
Вывод текста OutText(s); - вывод строки S OutTextXY(x,y,s); - вывод строки S по указанным координатам SetTextJustify(h,v);
SetTextJustify(CenterText,CenterText) OutText(x,y,’Hello!’); Hello!
SetTextStyle(font,dir,size); - задает стиль текста Font – гарнитура шрифта Dir – направление (горизонт. или верт.) Size - размер
Размер символов, задаваемый пользователем SetUserCharSize(mx,dx,my,dy); A A h*my/dy h w w*mx/dx
Hello! TextHeight(s) TextWidth(s)
Uses graph; Begin InitGraph(….); … readln; CloseGraph; End.