Файл: Сборник-задач-на-Языке-Turbo-Pascal.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.12.2024

Просмотров: 759

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Стили заполнения геометрических фигур

Константа

Код

Описание

EmptyFill

0

Сплошное заполнение цветом фона

SolidFill

1

Сплошное заполнение заданным цветом

LineFill

2

Заполнение горизонтальными линиями

LtSlashFill

3

Диагональное заполнение (///)

SlashFill

4

Диагональное заполнение толстыми линиями

BkSlashFill

5

Обратное диагональное заполнение толстыми линиями

LtBkSlashFill

6

Обратное диагональное заполнение (\\\)

HatchFill

7

Клетчатое заполнение

XhatchFill

8

Косое клетчатое заполнение

InterleaveFill

9

Чередующееся линейное заполнение

WideDotFill

10

Редко расположенные точки

CloseDotFilI

11

Часто расположенные точки

UserFill

12

Стиль определен пользователем



Процедуры

Arc(X, Y: Integer; Ul, U2, R: Word)Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y —координаты центра дуги;Ul— угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонталь­ной оси, направленной слева направо; U2 — угол до конечной точ­ки дуги, отсчитываемый так же, какUl;R— радиус дуги.

Bar(Xl, Yl, X2, Y2: Integer)Строит прямоугольник, закрашенный текущим цветом с использова­нием текущего стиля (орнамента, штриховки). XI, Yl, X2, Y2 — ко­ординаты левого верхнего и правого нижнего углов прямоугольника.

Bar3D(Xl, Yl,X2, Y2: Integer; Glubina; Word; Top: Boolean) Строит параллелепипед, используя текущий стиль и цвет. XI,Yl,X2, Y2 — координаты левого верхнего и правого нижнего углов передней грани;Glubina— ширина боковой грани (отсчитывается по горизон­тали); Тор — признак включения верхней грани (еслиTrue— верх­няя грань вычерчивается,False— не вычерчивается).

Circle(X, Y: Integer; R: Word)Рисует текущим цветом окружность радиуса R с центром в точке (X, Y).

ClearDevice Очищает графический экран, закрашивает его в цвет фона.

ClearViewPort Очищает выделенное графическое окно, закрашивает его в цвет фона.

CloseGraphЗакрывает графический режим, т. е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.

Ellipse(X, Y: Integer; Ul,U2, XR, YR: Word)Рисует дугу эллипса текущим цветом. X, Yкоординаты центра эллипса; Ul, U2 - углы до начальной и конечной точек дуги эллипса (см. процедуруArc);XR,YR— горизонтальная и вертикальная полуоси эллипса.

FillEllipse(X, Y: Integer; XR, YR: Word) Рисует заштрихованный эллипс, используя X, Y как центр и XR, как горизонтальную и вертикальную полуоси эллипса.

FillPoly(N: Word; Var PolyPoints)Рисует и штрихует многоугольник, содержащий N вершин с координатами вPolyPoints.

InitGraph(Var Driver, Mode: Integer; Path: String)Организует переход в графический режим. ПеременныеDriverиModeсодержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т. е. равна "), считается, что драйвер находится в текущем каталоге.


Line(Xl, Yl,X2, Y2: Integer) Рисует линию от точки XI, Yl до точки X2, Y2.

LineTo(X, Y: Integer) Рисует линию от текущего указателя к точке X, Y.

MoveTo(X, Y: Integer) Смещает текущий указатель к точке X, Y.

OutTextXY(X, Y: Integer; TextString:String) Выводит текст в заданное место экрана.

PieSlice(X, Y: Integer; Ul, U2, Radius: Word) Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X, Y - координаты центра сектора круга; Ul и U2 - начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной вправо;Radius— радиус сектора.

PutPixel(X, Y: Integer; Color: Word)Выводит точку цветомColorс координатами X, Y.

Rectangle(Xl, Yl, X2,Y2) Рисует контур прямоугольника, используя текущий цвет и тип линии. XI, Yl — координаты левого верхнего угла прямоугольника; X2, Y2 — координаты правого нижнего угла прямоугольника.

Sector(X, Y: Integer; Ul, U2, XR, YR: Word)Рисует и штрихует сектор эллипса радиусами XR, YR с центром вX,Y от начального угла Ul к конечному углу U2.

SetBkColor(Color: Word)Устанавливает цвет фона.

SetColor(Color: Word) Устанавливает основной цвет рисования.

SetFaiStyle(Pattern, Color: Word) Устанавливает образец штриховки и цвет.

SetLineStyle(LineStile, Pattern, Thickness: Word) Устанавливает толщину и стиль линии.

SetTextStyle(Font, Direction, CharSize: Word) Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.

SetViewPort(Xl, Yl,X2, Y2: Integer; ClipOn: Boolean) Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет «отсечку» элементов изображения, не умещающих­ся в окне.


Функции

GetMaxX и GetMaxYВозвращают значения максимальных координат экрана в текущем ре­жиме работы соответственно по горизонтали и вертикали.

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

Заполнение графического экрана диагональными линиями

Program diagonals;

Uses Graph;

var gd, gm, i : Integer;

Begin

gd := Detect;

InitGraph(gd, gm, ' ');

i := -GetMaxY;

while i <= GetMaxY do

begin

Line(0, i, GetMaxX, i GetMaxY);

i := i + 20:

end;

Readln;

CloseGraph;

End.

Рисование 14 разноцвет­ных вертикальных полос, окрашенных 14 цветами (кроме белого и черного). (Можно с помощью проце­дур рисования линий и установки цвета).

Program stripes;

Uses Graph;

var

gd, gm, с, х, у, i Integer;

Begin

gd := Detect;

InitGraph(gd, gm, ' ' );

SetBkColor(white);

ClearDevice;

x :=0;

for с := 1 to 14 do

begin

x := x + 35;

SetColor(c);

Line(x, 0, x, 400);

for 1 :=1 to 5 do Line(x + i, 0, x + i, 400); {Рисуем 6 полос}

end;

Readln;

CloseGraph;

End.

Программа рису­ет картинку, состоящую из разноцветных кружков.

Program bubbles;

Uses Graph, Crt;

var gd, gm, ec, uf : Integer;

Begin

gd := Detect;

gm := 0;

InitGraph(gd, gm, ' ');

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

for gm := 1 to 500 do

begin

ес := ес + 1;

if ec = 16 then ec := 1;

SetColor(ec);

Circle(Random(GetMaxX), Random(GetMaxY), Random(gd + 10));

end;

SetColor(Random(White));

SetTextStyle(0, HorizDir, 5);

OutTextXY(50, 29, 'Bubbles');

ReadKey;

CloseGraph;

End.

Программа рисует 16 разноцветных кружков, равномерно расположен­ных на отрезке прямой, соединяющем точки (х1, у1) и (х2, у2), в каждом из которых помещен один сим­вол текстовой строки:

Program vinnie;

Uses Graph, Crt;

var