Константы шаблона штриховки




EmptyFill = 0; SolidFill = 1; LineFill = 2; LtSlashFill = 3; SlashFill = 4; BkSlashFill = 5; LtBkSlashFill = 6; HatchFill = 7; XHatchFill = 8; InterleaveFill = 9; WideDotFill = 10; CloseDotFill = 11; UserFill = 12. {Заполнение цветом фона} {Сплошная штриховка} {Горизонтальная штриховка} {/// штриховка} {/// штриховка толстыми линиями} {\\\ штриховка толстыми линиями} {\\\ штриховка} {Заполнение прямой клеткой} {Заполнение косой клеткой} {Заполнение частой сеткой} {Заполнение редкими точками} {Заполнение частыми точками} {Тип задается пользователем}

 

Процедуры


Arc(X, Y: Integer; U1, U2, R: Word) Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y — координаты центра дуги, U1 — угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо, U2 — угол до конечной точки дуги, отсчитываемый так же, как U1, R — радиус дуги.
Bar(X1, Y1, X2, Y2: Integer) Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, Y2 — координаты левого верхнего и правого нижнего углов прямоугольника.
Bar3D(X1, Y1, X2, Y2: Integer; Glubina: Word; Top: Boolean) Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 — координаты левого верхнего и правого нижнего углов передней грани; Glubina — ширина боковой грани (отсчитывается по горизонтали), Top — признак включения верхней грани (если True — верхняя грань вычерчивается, False — не вычерчивается).
Circle(X, Y: Integer; R: Word) Рисует текущим цветом окружность радиуса R c центром в точке (X,Y).
ClearDevice Очищает графический экран, закрашивает его в цвет фона.
ClearViewPort Очищает выделенное графическое окно, закрашивает его в цвет фона.
CloseGraph Закрывает графический режим, т.е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.
Ellipse(X, Y: Integer; U1, U2, XR, YR: Word) Рисует дугу эллипса текущим цветом; X, Y — координаты центра эллипса; U1, U2 — углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, YR — горизонтальная и вертикальная полуоси эллипса.
FillEllipse(X, Y: Integer; XR, YR: Word) Рисует заштрихованный эллипс, используя X,Y как центр и XR,YR как горизонтальную и вертикальную полуоси эллипса.
FillPoly(N: Word; Var PolyPoints) Рисует и штрихует многоугольник, содержащий N вершин с координатами в PolyPoints.
InitGraph(Var Driver, Mode: Integer; Path: String) Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ''), считается, что драйвер находится в текущем каталоге.
Line(X1, Y1, X2, Y2: Integer) Рисует линию от точки X1, Y1 до точки X2,Y2.
LineTo(X, Y: Integer) Рисует линию от текущего указателя к точке X,Y.
MoveTo(X, Y: Integer) Смещает текущий указатель к точке X,Y.
OutTextXY(X, Y: Integer; TextString: String) Выводит текст в заданное место экрана.
PieSlice(X, Y: Integer; U1, U2, Radius: Word) Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X, Y — координаты центра сектора круга; U1 и U2 — начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной вправо; Radius — радиус сектора.
PutPixel(X, Y: Integer; Color: Word) Выводит точку цветом Color с координатами X, Y.
Rectangle(X1, Y1, X2, Y2) Рисует контур прямоугольника, используя текущий цвет и тип линии. X1, Y1 — координаты левого верхнего угла прямоугольника, X2, Y2 — координаты правого нижнего угла прямоугольника.
Sector(X, Y: Integer; U1, U2, XR, YR: Word) Рисует и штрихует сектор эллипса радиусами XR, YR с центром в X, Y от начального угла U1 к конечному углу U2.
SetBkColor(Соlor: Word) Устанавливает цвет фона.
SetColor(Соlor: Word) Устанавливает основной цвет, которым будет осуществляться рисование.
SetFillStyle(Pattern, Color: Word) Устанавливает образец штриховки и цвет.
SetLineStyle(LineStile, Pattern, Thickness: Word) Устанавливает толщину и стиль линии.
SetTextStyle(Font, Direction, CharSize: Word) Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.
SetViewPort(X1, Y1, X2, Y2: Integer; ClipOn: Boolean) Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет "отсечку" элементов изображения, не умещающихся в окне.

Функции


GetMaxX и GetMaxY Возвращает значения максимальных координат экрана в текущем режиме работы, соответственно, по горизонтали и вертикали.
GraphResult Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок, или возвращает числовой код ошибки (от —1 до —14).

ПРИМЕР: Эта программа демонстрирует возможности изображения линий в графическом режиме.

 

 

Program Lines;

Uses Graph, Crt; {подключение к программе библиотек Crt и Graph}

Var

Key: Char;

LineStyle: Word; {номер стиля рисования линии}

Style: String; {название стиля }

GrDriver, GrMode: Integer; {тип и режим работы графического драйвера}

GrError: Integer; {код ошибки графики}

BEGIN

GrDriver:= Detect; {автоопределение типа графического драйвера}

InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); {установка графического режима}

GrError:= GraphResult;

If GrError<>GrOk then begin Writeln('Обнаружена ошибка!'); Halt

end;

SetBkColor(LightGray); SetColor(Red); {цвет фона и цвет рисования }

{------------------------------------------------------------}

OutTextXY(120, 100, 'Рисуем линию от точки (200,200) к точке (400,280)');

Line(200, 200, 400, 280);

Key:=ReadKey; {приостановление исполнения программы}

ClearViewPort; {очистка окна}

{-----------------------------------------------------------}

OutTextXY(240, 80, 'Рисуем ломанную');

Rectangle(110, 120, 520, 400); {рисование рамки }

MoveTo(Round(GetMaxX/2), Round(GetMaxY/2)); {указатель в центре окна}

Repeat {цикл прерывается нажатием любой клавиши}

LineTo(Random(GetMaxX-250)+120, Random(GetMaxY-210)+120);

Delay(100);

until KeyPressed;

Key:= ReadKey; ClearViewPort;

{-----------------------------------------------------------}

OutTextXY(190, 80, 'Mеняем стили рисования линий');

For LineStyle:= 0 to 3 do

Begin

SetLineStyle(LineStyle, 0, 1);

Case LineStyle of

0: Style:='Сплошная';

1: Style:='Точечная';

2: Style:='Штрихпунктирная';

3: Style:='Пунктирная'

end;

Line(120, 150+LineStyle*50, 430, 150+LineStyle*50);

OutTextXY(450, 145+LineStyle*50, Style);

end;

Key:=ReadKey; ClearViewPort; {очистка окна}

{-----------------------------------------------------------}

OutTextXY(180, 80, 'Меняем толщину рисования линий');

SetLineStyle(0, 0, 1); {толщина 1 пиксел }

Line(140, 200, 430, 200); OutTextXY(450, 195, 'Нормальная');

SetLineStyle(0, 0, 3); {толщина 3 пиксела}

Line(140, 250, 430, 250); OutTextXY(450, 245, 'Тройная');

ReadLn; CloseGraph; {закрытие графического режима} END.

ПРИМЕР: Эта программа рисует закрашенный прямоугольник, меняя случайным образом цвет, тип штриховки и высоту тона звукового сопровождения.

 

Program MusicColor;

Uses Crt, Graph; {подключение к программе библиотек Crt и Graph}

Var

GrDriver, GrMode: Integer; {тип и режим работы графического драйвера}

BEGIN

GrDriver:= Detect; {автоопределение типа графического драйвера}

InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); {установка графического режима}

SetColor(White); {установка белого цвета рамки }

Rectangle(130, 130, 460, 370); {рисование рамки }

Randomize; {инициализация датчика случайных чисел}

Repeat {цикл прерывается нажатием любой клавиши}

Sound(Random(2000)); {изменение высоты звука }

Delay(Random(1000)); {задержка }

SetFillStyle(Random(4), Random(16)); {смена типа штриховки и цвета}

Bar(140, 140, 450, 360); {рисование закрашенного прямоугольника}

until KeyPressed;

NoSound; {отмена звука }

CloseGraph; ReadLn; {закрытие графического режима}

END.

ПРИМЕР: Эта программа рисует на экране звезду и закрашивает её, используя 12 типов штриховки.

 

Program Star;

Uses Crt, Graph;

{подключение к программе библиотек Crt и Graph}

Const { массив координат вершин многоугольника (звезды) }

TopsStar: Array[1..18] of Integer = (300, 125, 325, 225, 425, 250,

325, 275, 300, 375, 275, 275, 180, 250, 275, 225, 300, 125);

Var

i, j, GrDriver, GrMode: Integer;

BEGIN

GrDriver:= Detect;

InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); {установка графического режима}

SetTextStyle(DefaultFont, HorizDir, 2); {установка шрифта,

направления и размера символов}

OutTextXY(220, 60, 'S T A R ');

SetTextStyle(DefaultFont, VertDir, 2);

OutTextXY(140, 150, 'S T A R ');

SetTextStyle(DefaultFont, VertDir, 2);

OutTextXY(500, 150, 'S T A R ');

i:=0;

Repeat

j:=i mod 12; { j - остаток от деления i на 12 }

SetFillStyle(j, Random(13)); { штриховка и фон }

FillPoly(9, TopsStar); {рисование и штриховка звезды}

Inc(i); {увеличение i на 1}

Delay(500)

until KeyPressed; {завершение цикла нажатием любой клавиши}

CloseGraph END.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: