
Var GraphDriver,GraphMode:integer;
X0,y0:integer;
const path='c:\tp70\bgi';
begin
GraphDriver:=detect;
InitGraph(GraphDriver,GraphMode,path);
if GraphResult <> GrOk then begin
writeln('GRAPHICESKIY REZIM NE USTANOVLEN ');
Halt
end;
SetBkColor(7);
SetColor(1);
x0:= GetMaxX div 2;
y0:= GetMaxY div 2;
Rectangle(x0-200,y0-100,x0+200,y0+100);
SetColor(Red);
Circle(x0,y0,150);
SetColor(Magenta);
SetTextStyle(GothicFont,HorizDir,3);
OutTextXY(x0-100,y0-10,'Das ist Fantactich');
SetColor(Cyan);
SetLineStyle(DottedLn,0,ThickWidth);
Line(x0-200,y0+100,x0+200,y0-100);
readln;
CloseGraph
end.
Здесь процедура
SetTextStyle(Font:word;Direction:word;CharSize:word) задаёт соответственно шрифт, направление и размер символов. Допускается нормальное (слева направо) и вертикальное (90 градусов к нормальному тексту, снизу вверх) направления. Размер любого шрифта может быть увеличен с помощью параметра CharSize. При CharSize равном 1 каждый символ 8*8 битового шрифта будет размещаться в квадрате 8*8 пикселей на экране, при CharSize равном 2 на экране воспроизведется тот же шрифт, но в квадрате 16*16 и т.д. Направление: HorizDir – 0, VertDir – 1; шрифты: DefaultFont – 0 (матричный шрифт), TriplexFont – 1, SmallFont – 2, SansSerifFont – 3, GothicFont – 4.
Процедура SetLineStyle(LineStyle:word;Pattern:word;Thickness:word); задаёт толщину и форму линии. Константы для этой процедуры:
SolidLn |
0 |
Сплошная |
DottedLn |
1 |
Пунктирная |
CenterLn |
2 |
Штрих пунктирная |
DachedLn |
3 |
Штриховая |
UserBitLn |
4 |
Заданная пользователем |
NormWidth |
1 |
Тонкая |
TickWidth |
3 |
Толстая |
Пример программы графики с анимацией: катящееся колесо ударяется о тумбу и вызывает вращение другого колеса.
program cub;
uses graph,crt;
const
r=40; yo=350; x0:integer=500;
a=105; b=200; h=300;
var
graphdriver,graphmode,k : integer;
X1,dx,y,y1,X,dy,dy3 : integer;
X4,x5,x6,x7,y4,y5,y6,y7,dy2 : integer;
dx1,dy1,x2,y2,x3,y3,dx3,dx2 : integer;
alfa,alf : real;
procedure line_spin(xo,i:integer;dalfa:real);
procedure picture(col:word);
begin
setcolor(col);
line(x,y,x1,y1);
line(x2,y2,x3,y3);
line(x4,y4,x5,y5);
line(x6,y6,x7,y7);
line(a,b,a,h);
circle(xo,yo,r);
circle(a,b,r);
end;
begin
x:=xo+r; x2:=xo;
y
x0;y0 alfa
x1;y1 r
x2;y2
x3;y3
x1:=xo-r; x3:=xo;
y1:=yo; y3:=yo-r;
alfa:=0;
repeat
dx:=round(r*cos(alfa));
dy:=round(r*sin(alfa));
dx1:=round(r*cos(alfa+pi/2));
dy1:=round(r*sin(alfa+pi/2));
picture(white);
delay(2000);
Xpicture(black);
if k>144 then alf:=alf-dalfa;
x;y
dy2:=round(r*sin(alf));
dx3:=round(r*cos(alf+pi/2));
dy3:=round(r*sin(alf+pi/2));
x4:=a+dx2; x5:=a-dx2; x6:=a+dx3; x7:=a-dx3;
y4:=b-dy2; y5:=b+dy2; y6:=b-dy3; y7:=b+dy3;
if k<=144 then
begin
xo:=xo-i;
x:=xo+dx; x1:=xo-dx; x2:=xo+dx1; x3:=xo-dx1;
y:=yo-dy; y1:=yo+dy; y2:=yo-dy1; y3:=yo+dy1;
end;
alfa:=alfa+dalfa;
k:=k+1;
until keypressed;
end;
begin
graphdriver:=detect;
clrscr;
initgraph(graphdriver,graphmode,'c:\tp70\bgi');
setbkcolor(black);
rectangle(170,300,40,400);
line_spin(500,2,pi/72);
closegraph;
end.
Пример программы графики в паскале с анимацией. Программа «Блок»
program ol;
uses Graph,crt;