Инициализация графики |
Язык Turbo Pascal предоставляет целый ряд процедур и других средств, позволяющих рисовать на экране разноцветные точки, отрезки
прямых, дуги, закрашенные и незакрашенные окружности, прмоугольники, а также выполнять ряд других действий.
Все средства для работы с графикой находятся в модуле GRAPH, поэтому он должен быть подключен в программе перед тем, как начать
работу:
|
USES Graph;
|
Инициализация графики производится с помощью процедуры InitGraph: |
InitGraph(var GraphDriver:Integer; var GraphMode:Integer; PathToDriver:String) |
Переменная GraphDriver определяет тип видеоадаптера, GraphMode - тип графического режима. Если переменной GraphDriver присвоить
значение Detect, то Паскаль сам определит установленный видеоадаптер и установит самый мощный из имеющихся графический
режим. Другие возможные значения переменных GraphDriver (графические драйвера) и GraphMode (графические режимы) приведены
здесь. Переменная PathToDriver определяет путь к каталогу, в котором находятся графические драйвера
Паскаля. Для проверки успешности инициализации графики можно использовать процедуру GraphResult. Если графика была успешно
инициализировнана, то процедура GraphResult вернет значение grOk.
|
Процедуры модуля Graph. |
Здесь приведены наиболее интересные и часто используемые процедуры для рисования. Все остальные, быть может, появятся позже, хотя в их использовании и нет особой необходимости. К неописанным ниже относятся такие процедуры, как DrawPoly и FillPoly, позволяющие рисовать многоугольники и закрашивать их, процедуры для работы с экранными координатами и другие. Но того, что есть, обычно хватает.
|
Очень важно! В языке Паскаль используется нестандартная система координат. Нуль ее расположен в левом верхнем углу, ось Ox направлена вправо, а Oy - вниз.
|
Процедуры для рисования фигур. |
- PutPixel(X, Y:Integer; Pixel:Word);
- Рисует на экране точку с координатами (X, Y) цветом Pixel.
- Line(X1, Y1, X2, Y2:Integer);
- Рисует на экране отрезок прямой от точки (X1, Y1) до точки (X2, Y2).
- Rectangle(X1, Y1, X2, Y2:Integer);
- Рисует на экране прямоугольник с верхним левым углом в точке (X1, Y1) и нижним правым углом в точке (X2, Y2).
- Bar(X1, Y1, X2, Y2:Integer);
- Рисует на экране залитый прямоугольник с верхним левым углом в точке (X1, Y1) и нижним правым углом в точке (X2, Y2). Стиль и цвет заливки задаются процедурой SetFillStyle.
- Bar3D(X1, Y1, X2, Y2:Integer; Depth:Word; Top:Boolean);
- Рисует на экране параллелепипед с залитой передней гранью. Глубина фигуры - Depth. Если Top равно TopOn , то параллелепипед рисуется с верхней гранью, если TopOff, то без верхней грани. Стиль и цвет заливки передней грани задаются процедурой SetFillStyle.
- Circle(X, Y:Integer; Radius:Word);
- Рисует на экране окружность с центром в точке (X, Y) радиусом Radius.
- Ellipse(X, Y:Integer; StAngle, EndAngle:Word; XRadius, YRadius:Word);
- Рисует на экране эллиптическую дугу с центром в точке (X, Y), радиусами XRadius, YRadius. StAngle, EndAngle - начальный и конечный углы.
- Arc(X, Y:Integer; StAngle, EndAngle:Word; Radius:Word);
- Рисует на экране дугу окружности с центром в точке (X,Y), радиусом Radius. StAngle, EndAngle - начальный и конечный углы.
- FillEllipse(X, Y:Integer; XRadius,YRadius:Word);
- Рисует на экране залитый эллипс с центром в точке (X, Y), радиусами XRadius, YRadius. Стиль и цвет заливки задаются процедурой SetFillStyle.
- Sector(X, Y:Integer; StAngle, EndAngle:Word; XRadius, YRadius:Word);
- Рисует на экране закрашенный сектор эллипса с центром в точке (X, Y), радиусами XRadius, YRadius. StAngle, EndAngle - начальный и конечный углы. Стиль и цвет заливки задаются процедурой SetFillStyle.
- PieSlice(X, Y:Integer; StAngle, EndAngle:Word; Radius:Word);
- Рисует на экране закрашенный сектор круга с центром в точке (X, Y), радиусом Radius. StAngle, EndAngle - начальный и конечный углы. Стиль и цвет заливки задаются процедурой SetFillStyle.
|
Другие процедуры. |
- ClearDevice;
- Очищает экран в графическом режиме.
- CloseGraph;
- Закрывает графический режим.
- SetColor(Color:Word);
- Устанавливает новый цвет для рисования.
- SetLineStyle(LineStyle:Word; Pattern:Word; Thickness:Word);
- Устанавливает стиль и толщину линий. Если Thickness равно ThickWidth, то линии будут толстыми, если NormWidth, то обычными.
- SetFillStyle(Pattern:Word; Color:Word);
- Устанавливает стиль и цвет заливки. Если Pattern равно UserFill, то используется определенный пользователем стиль, описанный процедурой SetFillPattern.
- SetFillPattern(Pattern:FillPatternType; Color:Word);
- Устанавливает определяемый пользователем стиль и цвет заливки. FillPatternType=Array [1..8] of Byte;
- FloodFill(X, Y:Integer; Border:Word);
- Заливает область вокруг точки (X, Y) до линии цвета Border, используя текущий стиль и цвет заливки.
- SetTextStyle(Font, Direction:Word; CharSize:Word);
- Устанавливает используемый шрифт, его направление и размер. Направление соответствует значению переменной Direction и может быть горизонтальным (Direction=0) или вертикальным (Direction=1). Шрифт может быть как одним из стандартных, так и определенный пользователем (с помощью функции InstallUserFont).
- SetUserCharSize(MultX, DivX, MultY, DivY:Word);
- Устанавливает ширину букв используемого шрифта в MultX/DivX раз больше, а высоту в MultY/DivY раз больше.
- OutTextXY(X, Y:Integer; TextString:String);
- Выводит текст TextString на экран от точки (X, Y).
|