Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
09.03.2016
Размер:
65.54 Кб
Скачать

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

y:=yo; y2:=yo+r;

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

dx2:=round(r*cos(alf));

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;

Соседние файлы в папке Lecture_Pascal