Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP_теория и практикум.doc
Скачиваний:
11
Добавлен:
20.08.2019
Размер:
861.7 Кб
Скачать

Линии и точки

PutPixel (x,y,цвет);-закрашивает пиксел.

GetPixel(x,y)-дает цвет пикселя.

Line(X1,Y1,X2,Y2);Линия.Цвет-SetColor,

Параметры линии-SetLineSyle;

Режим построения-SetWriteMode

LineRel(dx,dy);проводит линию текущего цвета из текущей позиции в точку,сдвинутую на dx,dy.

Цвет-SetColor,

Параметры линии-SetLineStyle,

Режим-Set WriteMode

Lineto(X,Y);-линия текущего цвета из текущей позиции в точку (X,Y),остальное-то же.

Пример. Заполнить экран случайными линиями.

Program Demo;

Usec Crt,Graph;

Var d,r: integer;

Begin d:=detect;

InitGraph(d,r,'..\BGI ')';

SetGraph Mode(0); {установить цветн.режим}

repeat SetColor(random(4));

Line( Random (GetMax X)),

Random(GetMaxY),

Random(GetMaxX),

Random(GetMaxY))

until Keypressed;

CloseGraph

End.

SetLineStyle(вид,образец,толщина);

Вид: 0-сплошная Solidln

1-точечная Dottedln

2-штрихпунктирнаяCenterln

3-пунктирнаяDashedln

4 - UserButln (определенная пользователем), тогда учитывается параметр "образец"

Толщина = 1 - один пиксел,

3 - три пиксела.

SetWriteMode(способ);-способ взаимодействия новаых линий с уже имеющимися.

Способ = 0 –накладываются?

1-инвертируются точки пересечения,так что вид экрана не меняется от порядка вывода линий.

Многоугольники

Rectangle(X1,Y1,X2,Y2)-контур прямоугольника текущего цвета.

Пример. Program rect_3;

Uses Graph,Crt;

Var d,r,x1,y1,x2,y2: integer;

Begin d:=detect;

Init Graph(d,r,’..\BGI’);

SetGraphMode(0);{установить цветной режим-вид "замена"}

Repeat

SetColor(random(white));

SetLineStyle(random(4),0,random(2));

X1:=random(getMaxX);

Y1:=random(GetMaxY);

X2:=X1+random(getMaxX);

Y2:=Y1+random(GetMaxY);

If X2>GetMaxXthenX2:=GetMaxX;

IF y2>GetMaxY then Y2:=Get MaxY;

Rectangle(X1,Y1,X2,Y2);

Delay(100)

Until KeyPressed;

Close Graph

End.

Bar(X1,Y1,X2,Y2);прямоугольник. Цвет-SetFillStyle илиSet Patterne.

Bar3D(X1,Y1,X2,Y2, глубина, верхняя грань) - вычерчивает трехмерное изображение паралеллепипеда и закрашивает его переднюю грань. Если верхняя грань=False,то она не рисуется (например,если параллелепипеды поставлены друг на друга).

В модуле определены константы: TopOn=true

TopOff=false

Это используется для построения диаграмм. Параллелепипед "прозрачный".

DrawPoly(n,координаты) - произвольная ломанная линия, заданная координатами точек излома, n-колличество точек излома,включая обе крайние.

ИЛИ:

DrawPoly(n,X1,Y1,X2,Y2,…Xn,Yn,X1,Y1) - строит контур многоугольника. Цвет-SetColor; линия-SetLineStyle, режим помтроения линии - SetWriteMode.

Пример. График синусоиды. В модуле определен тип:

Type Pointype=record x,y:Word end;

Program Loman;

Uses Graph;

Const h=100;

Var d,r:integer;

M: array [0..(n+1)]of PoinType;

I:word;

Begin

D:=detect;

1 nitGraph(d,r,");

for i:=0 to n do

with m [i]do begin

X:=trunc(i*GetMaxX/n);

Y:=trunc(GetMaxY*(sin(2*Pi*i/n)+1)/2)

End;

M[succ(n).X:=m[0].X;

M[succ(n).Y:=m[0].Y;

Draw Poly(n+2,m);

Readln;

Close Graph

End.

Дуги,окружности, эллипсы

Circle(X,Y,радиус)-окружность текущим цветом.

Толщина линий - всегда-текущим стилем, вид линии всегда Solidln (сплошная).

Arc (X, Y, BegA, EndA, R), где переменные X, Y, BegA, EndA, R типа Word - Рисуется дуга (часть окружности) с координатами центра (X, Y), с радиусом R, которая начинается от угла BegA до угла EndA в полярной системе координат.

Ellipse(X, Y, BegA, EndA , хR, yR), где переменные X, Y переменные типа integer, а BegA, EndA, хR, yR типа Word - рисуется дуга эллипса, у которого центр находится в точке (X, Y), BegA - начальный угол, EndA - конечный угол, хR - радиус по горизонтальной оси, yR - радиус по вертикальной оси.

FillEllipse (X, Y, Rx, Ry), где X, Y, Rx, Ry являются переменными типа Integer обводит линией и заполняет эллипс. Здесь X, Y - координаты центра эллипса, Rx, Ry - горизонтальный и вертикальный радиусы эллипса. Эллипс обводится линией, заданной процедурами SetLineStyle и SetColor, и заполняется с использованием параметров, установленных процедурой SetFillStyle.

Sector (X, Y, BegA, EndA, Rx, Ry), где переменные X, Y типа Integer, а BegA, EndA, Rx, Ry типа Word - вычерчивает и заполняет эллипсный сектор. Здесь X, Y - координаты центра эллипса, BegA, EndA - начальный и конечный углы эллипсного сектора, Rx, Ry - горизонтальный и вертикальный радиусы эллипса.

3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]