Процедура Bar(x1, x2, y1, y2) штрихует, но не обводит прямоугольную область экрана текущим образцом штриховки и текущим цветом, заданным в процедуре SetFillStyle; x1, x2, y1, y2 – координаты левого верхнего и правого нижнего угла прямоугольной области.
Процедура FillEllipse (x, y, <начальный угол>, <конечный угол>, Rx, Ry) и Sector (x, y, <начальный угол>, <конечный угол>, Rx, Ry) обводит линией эллипс и эллиптический сектор соответственно, заданной процедурами SetLineStyle и SetColor, и заполняет штриховкой, заданной процедурой SetFillStyle.
Процедура OutText (<текст>) выводит текст, начиная с текущего положения указателя.
Процедура OutTextXY (<текст>) выводит текст, начиная с заданного места; x, y - выражения типа integer, задающие координаты точки вывода.
Процедура SetTextStyle (<шрифт>, <направление>, <размер>) устанавливает стиль выводимого текста; <шрифт>, <направление>, <размер> - выражение типа word, означающие коды соответственно шрифта, направления размера шрифта. Для каждого шрифта допустимо десятикратное изменение размера, код размера может иметь значение от 1 до 10.
Таблица 3 – Коды шрифтов и направления.
Коды шрифтов |
Коды направления |
0 – стандартный |
0 – слева на право |
1 – типа триплекс |
1 – снизу вверх |
2 – уменьшенный |
|
3 – прямой |
|
4 – готический |
Примеры программ
Программа 1. Выводит точки и линии со случайными координатами, цвет также выбирается случайно.
Program pix;
uses Graph, crt;
var d, r, e, i:integer;
x, y, x1, y1 : integer;
begin
d:= detect; InitGraph(d, r, ‘c:\tp\bgi’); e:=GraphResult;
If e<> grOk then writeln(GraphErrorMsg(e))
else
repeat
x:=random(GetMaxX); y:= random(GetMaxY);
PutPixel(x, y, random(15));
x:=random(GetMaxX); y:= random(GetMaxY);
x1:=random(GetMaxX); y1:= random(GetMaxY);
SetColor(random(15));
line(x, y, x1, y1); delay (500);
until KeyPressed; end; end.
Программа 2. Выводит на экран линии различного вида и цвета.
Program pix;
uses Graph, crt;
var d, r, e, j, x, y, x1, y1:integer;
i : word;
begin
d:= detect; InitGraph(d, r, ‘c:\tp\bgi’); e:=GraphResult;
If e<> grOk then writeln(GraphErrorMsg(e))
else
begin
j:=8;
for i:=1 to 3 do begin
j:=j+1; SetColor(j); SetLineStyle(i, 0, 1);
line(10, trunc(i*20+100), 200, trunc(i*20+100));
SetLineStyle(i, 0, 3);
line(300, trunc(i*20+100), 480, trunc(i*20+100));
end;
end;
end.
Программа 3. Выводи параллелепипеды.
Program pix;
uses Graph, crt;
var d, r, e:integer;
begin
d:= detect; InitGraph(d, r, ‘c:\tp\bgi’); e:=GraphResult;
If e<> grOk then writeln(GraphErrorMsg(e))
else
begin
Bar3D(80, 100, 120, 180, 15, true);
Bar3D(150, 150, 190, 180, 15, false);
Bar3D(230, 50, 250, 150, 15, true);
Bar3D(220, 150, 260, 180, 15, true);
Bar3D(300, 150, 340, 180, 15, false);
Bar3D(300, 50, 340, 150, 15, true);
readln; readln;
CloseGraph;
end; end.
Программа 4. Рисует окружность и штрихует ее различными видами штриховки.
Program pix;
uses Graph, crt;
var d, r, e, i, x, y, x1, y1:integer;
begin
d:= detect; InitGraph(d, r, ‘c:\tp\bgi’); e:=GraphResult;
If e<> grOk then writeln(GraphErrorMsg(e))
else begin
repeat
for i:=1 to 11 do begin
SetFillStyle(i, i); x:=320; y:=240;
SetColor(10); circle(x, y, 100);
FloodFill(x, y, 10);
delay(1000); ClearDevce; end;
until KeyPressed; CloseGraph;
end; end.
Пример 5. Использование процедуры DrawPoly (вычерчивается график функции).
Program Map_table;
uses Grapht;
var
tm: string;
d, e, k, l, j:integer;
r1, x1, y1: real;
x: array [0..100] of real;
m: array [0..600] of PointType;
i: word;
begin
x[0]:=0.1;
for i:=1 to 100 do x[i]:=4*x[i-1]*(1-x[i-1]);
d:= detect; InitGraph(d, r, ‘c:\tp\bgi’); e:=GraphResult;
If e<> grOk then writeln(GraphErrorMsg(e))
else begin
line(0, 0, 0, GetMaxY); line( 0, GetMaxY, GetMaxX, GetMaxY);
OutTextXY(GetMaxX-20, GetMaxY-20,’i’); j:=0;
for i:=1 to 100 do begin
y1:=x[i+j];
with m[i] do begin
x:=trunc(i*GetMaxX/100); y:=trunc(GetMaxY-y1*GetMaxY); circle(x, y, 1);
end;end;
SetColor(10); DrawPoly(101,m);
end; readln; readln;
CloseGraph; end.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.