24
Графический режим Модуль Graph y x (0; 0) В графическом режиме можно задавать цвет каждого пикселя независимо от других. Максимальные разрешения: CGA = 640х200 EGA = 640х350 VGA = 640x480

Графический режим Модуль Graph

  • Upload
    ora

  • View
    52

  • Download
    5

Embed Size (px)

DESCRIPTION

x. (0;0). Графический режим Модуль Graph. Максимальные разрешения: CGA = 640х200 EGA = 640х350 VGA = 640x480. y. В графическом режиме можно задавать цвет каждого пикселя независимо от других. Процедуры и функции модуля Graph. - PowerPoint PPT Presentation

Citation preview

Page 1: Графический режим Модуль  Graph

Графический режимМодуль Graph

y

x(0;0)

В графическом режиме можно задавать цвет каждого пикселя независимо от других.

Максимальные разрешения:

CGA = 640х200

EGA = 640х350

VGA = 640x480

Page 2: Графический режим Модуль  Graph

Процедуры и функциимодуля Graph

InitGraph(gd, gm, path); - процедура, инициализирующая графический режим работы видеоадаптера

gd: integer – графический драйвер

gm: integer – графический режим

path: string – путь к файлу драйвера

Page 3: Графический режим Модуль  Graph

Графические режимы (не все)

Драйвер

(gd)

Режим

(gm)Разреше-

ниеКол-во цветов

CGA CGAHi 640 х 200

EGAEGALo 640 x 200

EGAHi 640 x 350 16

VGA

VGALo 640 x 200

VGAMed 640 x 350

VGAHi 640 x 480

Page 4: Графический режим Модуль  Graph

Файлы драйверов

herc.bgi

cga.bgi

egavga.bgi

BGI = Borland Graphics Interface

Файлы обычно располагаются в каталоге BGI вместе с файлами графических шрифтов.

Page 5: Графический режим Модуль  Graph

Полезные функции

GetMaxX: integer; – возвращает максимальную координату по х

GetMaxY: integer; – возвращает максимальную координату по y

GetMaxY + 1

GetMaxX + 1

Page 6: Графический режим Модуль  Graph

Закрытие графического режима

CloseGraph; - процедура закрывает графический режим и переводит видеоадаптер обратно в текстовый режим работы

Page 7: Графический режим Модуль  Graph

Пример использованияInitGraph и CloseGraph

const GrPath = ‘c:\bp\bgi’;var gd, gm: integer;begin … { работа в текстовом режиме } gd:=EGA; gm:=EGAHi; InitGraph(gd, gm, GrPath); … { работа в графическом режиме } CloseGraph; … { работа в текстовом режиме }end.

Page 8: Графический режим Модуль  Graph

Анализ графических ошибок

GraphResult: integer – функция, возвращающая код последней графической ошибки (0 = нет ошибки)

GraphErrorMsg(code:integer): string – функция, возвращает строку описания ошибки по коду ошибки

Page 9: Графический режим Модуль  Graph

Пример инициализации с анализом ошибок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.

Page 10: Графический режим Модуль  Graph

Работа с отдельными пикселями

PutPixel(x, y, c); - задаёт цвет (c) пикселя с координатами (x, y)

GetPixel(x,y): integer; - возвращает цвет пикселя с координатами (x, y)

Page 11: Графический режим Модуль  Graph

Графические примитивы

x2,y2

x1,y1

Rectangle(x1,y1,x2,y2);

x2,y2

x1,y1

Bar(x1,y1,x2,y2);

Circle(x,y,R);

x,y

Rx2,y2

x1,y1

Line(x1,y1,x2,y2);

Page 12: Графический режим Модуль  Graph

Графические примитивы

Arc(x,y,SA,EA,R);

R

(x,y)

SA

EA

PieSlice(x,y,SA,EA,R);

SA EA

Ellipse(x,y,SA,EA,XR,YR); FillEllipse(x,y,XR,YR);

XRYR

(x,y)

(x,y)

XRYR

(x,y)

EASA

Page 13: Графический режим Модуль  Graph

Направление отсчёта углов

0180

270

90

Page 14: Графический режим Модуль  Graph

SetColor(c); - устанавливает цвет линий

SetLineStyle(s,p,th); - устанавливает стиль линий

• SolidLn 0• DottedLn 1• CenterLn 2• DashedLn 3• UserBitLn 4 (User-defined line style)

• NormWidth 1• ThickWidth 3

Page 15: Графический режим Модуль  Graph

ЗаливкаSetFillStyle(p,c); - устанавливает шаблон и цвет

заливки

Constant │ Value │ Meaning═══════════════╪═════════╪═════════════════════════EmptyFill │ 0 │ Uses background colorSolidFill │ 1 │ Uses draw colorLineFill │ 2 │ --- fillLtSlashFill │ 3 │ /// fillSlashFill │ 4 │ /// thick fillBkSlashFill │ 5 │ \thick fillLtBkSlashFill │ 6 │ \fillHatchFill │ 7 │ Light hatch fillXHatchFill │ 8 │ Heavy cross hatchInterleaveFill │ 9 │ Interleaving lineWideDotFill │ 10 │ Widely spaced dotCloseDotFill │ 11 │ Closely spaced dotUserFill │ 12 │ User-defined fill

Page 16: Графический режим Модуль  Graph

FloodFill(x,y,b); - закрашивает замкнутую область, ограниченную линией цвета b

Заливка замкнутой области

(x;y)

Page 17: Графический режим Модуль  Graph

Вывод текста

OutText(s); - вывод строки S

OutTextXY(x,y,s); - вывод строки S по указанным координатам

SetTextJustify(h,v);

TopText CenterText BottomText

LeftText CenterText RightText

Page 18: Графический режим Модуль  Graph

Hello!

SetTextJustify(CenterText,CenterText)OutText(x,y,’Hello!’);

Page 19: Графический режим Модуль  Graph

SetTextStyle(font,dir,size); - задает стиль текста

Font – гарнитура шрифта

Dir – направление (горизонт. или верт.)

Size - размер

Page 20: Графический режим Модуль  Graph

Font Direction (dir)

0 = System 0 = HorizDir

1 = Triplex Font 1 = VertDir

2 =

3 =

4 = GothicFont

5 =

6 =

Page 21: Графический режим Модуль  Graph

Размер символов, задаваемый пользователемSetUserCharSize(mx,dx,my,dy);

w

h*my/dyh

w*mx/dx

Page 22: Графический режим Модуль  Graph

Hello!TextWidth(s)

TextHeight(s)

Page 23: Графический режим Модуль  Graph
Page 24: Графический режим Модуль  Graph

Uses graph;

Begin

InitGraph(….);

readln;

CloseGraph;

End.