Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Создание иллюзии движения





Создать видимость движения изображения на экране можно несколькими способами. Рассмотрим два из них.

I способ. Имитация движения объекта на экране за счет многократного выполнения программой набора действий: нарисовать – пауза – стереть (нарисовать в том же месте цветом фона) – изменить координаты положения рисунка.
Перед началом составления программы надо продумать описание «двигающегося» объекта, характер изменения координат, определяющих текущее положение объекта, диапазон изменения и шаг.
Упражнение 1. Изучить текст программы, которая рисует модель атома.

program Model_At;
uses Crt, Graph;
const Ra=100; {радиус атома}
Rc=10; {радиус ядра}
Re=4; {радиус электрона}
k=0.5; {коэффициент сжатия орбит электронов}
Dr=30; {параметр изменения координат электрона}
Step1=0.2; {шаг изменения положения электрона}
Step=100; {время задержки – скорость движения электронов}
var cx, cy, y, y1, y2, x, x1, x2, x3,y3:integer;
I, I1, I2, I3: real; gd, gm: integer;
begin
clrscr;
gd:=detect;
initgraph(gd, gm, ‘путь к драйверу’);
SetTextStyle(0, 0, 2);
OutTextXY(200, 30, ‘Модель атома’);
cx:=GetMaxX div 2; {определить центр экрана- положение ядра}
cy:=GetMaxY div 2;
PieSlice(cx, cy, 0, 360, Rc);{нарисовать ядро атома}
SetColor(Red);
SetLineStyle(0, 0, 3);
Line(cx-7, cy, cx+7, cy);
Line(cx, cy-5, cx, cy+5);
SetLineStyle(0,0,1);
SetFillStyle(1,1);
I:=Pi/4; {задать начальное положение 4 электронов}
I1:= - Pi/4;
I2:= - Pi/2;
I3:= Pi/2;
SetTextStyle(0, 0, 1);
SetColor(jellow);
OutTextXY (180, 420,’Для отмены нажмите любую клавишу’);
While not KeyPressed do {повторять, пока не нажата любая клавиша }
begin {определить координаты электронов}
x:=Round (Ra*cos(I)) +cx; Y:= Round(k+Ra*sin(I)) +cy;
x1:= Round((Ra+Dr)*cos(I1)) +cx; y1:= Round (k*(Ra+Dr)*sin(I1)) +cy;
x2:= Round((Ra-Dr)*cos(I2)) +cx; y2:= Round (k*(Ra-Dr)*sin(I2)) +cy;
x3:= Round((Ra-Dr)*cos(I3)*2.3) +cx; y3:= Round (k*(Ra-Dr)*sin(I3)*2.3) +cy;{установить синий цвет и нарисовать электроны}
SetColor(1);
Circle(x, y, Re);
PutPixel(x, y, 2);
Circle(x1, y1, Re);
PutPixel(x1, y1, 2);
Circle(x2, y2, Re);
PutPixel(x2, y2, 2);
Circle(x3, y3, Re);
PutPixel(x3, y3, 2);
Delay(Step); {нарисовать электроны цветом фона}
SetColor(0);
Circle(x, y, Re);
PutPixel(x, y, 2);
Circle(x1, y1, Re);
PutPixel(x1, y1, 2);
Circle(x2, y2, Re);
PutPixel(x2, y2, 2);
Circle(x3, y3, Re);
PutPixel(x3, y3, 2); {задать изменение положения электронов}
I:=I + Step1;
I1:=I1 – Step1;
I2:=I2 + Step1;
I3:=I3 + Step1;
end; {конец цикла}
CloseGraph;
end.

II способ. Иллюзия движения создается при помощи специальных процедур и функций.
Функция ImageSize (x1,y1,x2,y2:integer):word возвращает размер памяти в байтах, необходимый для размещения прямоугольного фрагмента изображения, где x1,y1 – координаты левого верхнего и x2,y2 – правого нижнего углов фрагмента изображения.
Процедура GetImage (x1,y1,x2,y2:integer,var Buf) помещает в память копию прямоугольного фрагмента изображения, где x1,..,y2 – координаты углов фрагмента изображения, Buf - специальная переменная, куда будет помещена копия видеопамяти с фрагментом изображения. Buf должна быть не меньше значения, возвращаемого функцией ImageSize с теми же координатами.
Процедура PutImage (x1,y1,x2,y2:integer,var Buf, Mode:word) выводит в заданное место экрана копию фрагмента изображения, ранее помещенную в память процедурой GetImage. X,Y – координаты левого верхнего угла того места на экране, куда будет скопирован фрагмент изображения; Buf - специальная переменная, откуда берется изображение, Mode – способ копирования. Координаты правого нижнего угла не указываются, так как они полностью определяются размерами выводимой на экран копии изображения. Координаты левого верхнего угла могут быть любыми, лишь бы только копия уместилась в пределах экрана (если копия не размещается на экране, то она не выводится, и экран остается без изменений). Параметр Mode определяет способ взаимодействия размещаемой с уже имеющимся на экране изображением (табл. 7)

Константа Значение Операция Пояснения
NormalPut   Замена существующего на копию Стирает часть экрана и на это место помещает копию
XorPut   Исключительное или Рисует сохраненный образ или стирает ранее нарисованный, сохраняя фон
OrPut   Объединительное или Накладывает сохраненный образ на существующий
AndPut   Логическое и Объединяет сохраненный образ и уже существующий на экране
NotPut   Инверсия изображения То же самое, что и 0, только копия выводится в инверсном виде

 

Упражнение 2. Изучить программу, которая рисует звездное небо и перемещает на его фоне рисунок НЛО.

program NLO;
uses crt, graph;
const k=20;
Pause=50;
var gd, gm, xmin, xm, ymin, ym, x, y, tx, ty, rx, ry, size, i, dx, dy, width, height: integer;
sauser:Pointer;
begin
Randomize;
gd:= detect;
initgraph (gd, gm, ‘путь к драйверу’);
SetTextStyle (0, 0, 2);
OutTextXY (50, 10, ‘Демонстрация движения НЛО’); {Рисуем НЛО}
x:=R*5;
y:=R*2;
xm:=GetmaxX-5;
ym:=GetmaxY-25;
Ellipse(x, y, 0, 360, R, R div 3+2);
Ellipse(x, y-4, 190, 357, R, R div 3);
Line(x + 7, y - 6, x + 10, y - 12);
Line(x - 7, y - 6, x + 10, y - 12);
Circle(x + 10, y - 10, 2);
Circle(x - 10, y - 10, 2);
FloodFill(x+1, y+4, White); {определяем габариты НЛО и помещаем в специальную динамическую переменную}
Tx:= x-R;
Ty:=y-14;
Rx:=x+R;
Ry:=y+R div3 +3;
Width:=Rx-Tx+1;
Size:=ImageSize(Tx, Ty, Rx, Ry);
GetMem(sauser, Size);
GetImage(Tx, Ty, Rx, Ry, sauser^); {стираем построенное изображение}
PutImage(Tx, Ty, sauser^, XorPut); {рисуем звездное небо}
SetStyle (1, blue); {установить стиль и цвет закраски голубое небо}
SetColor (White); {начертить прямоугольник и открыть окно}
Rectangle (xmin, ymin, GetmaxX, GetmaxY);
SetViewPort (xmin, ymin, GetmaxX, GetmaxY, ClipOn);
FloodFill (xmin+1, ymin+1, White);
For i:=1 to 500 do {нарисовать 500 звезд белого цвета}
PutPixel(Random(GetmaxX),
Random(GetmaxY- ymin), 15); {задаем начальное положение НЛО}
x:=xm div 3 – xmin;
y:=ym div 3 – ymin;
dx:=6;
dy:=6;
Repeat {цикл: повторять, пока не нажата любая клавиша}
PutImage (x, y, sauser^, XorPut); {изображаем объект}
Delay (Pause);{задержка}
PutImage(x, y, sauser^, XorPut); {после паузы стираем объект} {перемещаем объект}
If (x<xmin) Or (y<ymin) Or (x+Width +1> xm) Or (y+Height +1> ym) Then
begin {если объект смещается влево-вверх за границы окна, изменить координаты так, чтобы он оставался в окне}
If (x- Dx< xmin) then x:= xmin else x:= x- Dx;
If (y- Dy< ymin) then y:= ymin else y:= y- Dy;
Dx:= GetmaxX div 10 - Random(GetmaxX div 4);
Dy:= GetmaxY div 10 - Random(GetmaxY div 4);
end
else
begin {если объект смещается вправо-вниз за границы окна, изменить координаты так, чтобы он оставался в окне}
If (x + Dx< xm) then x:= x + Dx else x:= Random(GetmaxX) - Random(GetmaxX div 4);
If (y + Dy< ym) then y:= y + Dy else y:= Random(GetmaxY) - Random(GetmaxY div 3);
end;
until KeyPressed; {завершить, как только будет нажата клавиша}
FreeMem (sauser, Size);
Closegraph;
end;
end.

 

 

Пример. Рисование сердца на экране:

program gr;
uses crt,graph;
var driver,mode,error:integer;
l,n,m,x,y,r:integer;
begin
driver:=detect;
initgraph(driver,mode,”);
error:=graphresult;
if error<>grOk then
begin
writeln(’Ошибка графики: ‘,graphErrorMsg(error));
writeln(’Программа аварийно завершила работу…’);
halt(1);
end;
m:=1;l:=1;x:=1;y:=1;r:=1;n:=1;
repeat
x:=1;y:=1;r:=1;l:=1;
repeat
begin
setcolor(cyan);
arc(170-x,150,0,180,20+r);
arc(210+x,150,0,180,20+r);
line(150-2*x,150,190,200+y);
line(230+2*x,150,190,200+y);
floodfill(149,150,cyan);
x:=x+1;y:=y+1;r:=r+1;
delay(20);
clearviewport;
l:=l+1;
end;
until l=20;
x:=1;y:=1;r:=1;m:=1;
repeat
setcolor(cyan);
arc(150+x,150,0,180,40-r);
arc(230-x,150,0,180,40-r);
line(110+2*x,150,190,220-y);
line(270-2*x,150,190,220-y);
floodfill(149,150,cyan);
x:=x+1;y:=y+1;r:=r+1;m:=m+1;
delay(20);
clearviewport;
until m=20;
n:=n+1;
until n=20;
closegraph;
end.

Пример. НЛО.

 

Program nlo;

uses crt, graph;

label loop;

const

r=20;

pause=10000;

col=white;

var driver,regim,error:integer;

i:integer;

sauser:pointer;

size:integer;

xm,ym,x,y,lx,ly,rx,ry,dx,dy,width,height:integer;

begin

clrscr;

driver:=detect;

InitGraph(driver,regim,'');

setgraphmode(0);

x:=r*5; y:=r*2;

xm:=getmaxx; ym:=getmaxy;

ellipse(x,y,0,360,r,r div 3 +2);

ellipse(x,y-4,190,357,r,r div 3);

line(x+7,y-6,x+10,y-12);

line(x-7,y-6,x-10,y-12);

circle(x+10,y-12,2);

circle(x-10,y-12,2);

setfillstyle(solidfill,col);

floodfill(x+1,y+4,col);

lx:=x-r-1; ly:=y-14;

rx:=x+r+1; ry:=y+r div 3 +3;

width:=rx-lx+1;

height:=ry-ly+1;

size:=imagesize(lx,ly,rx,ry);

getmem(sauser,size);

getimage(lx,ly,rx,ry,sauser^);

putimage(lx,ly,sauser^,xorput);

for i:=1 to 1000 do

putpixel(random(xm),random(ym),random(succ(getmaxcolor)));

x:=xm div 2; y:=ym div 2;

dx:=getmaxx div 100 -random(getmaxx div 50);

dy:=getmaxy div 40 -random(getmaxy div 20);

repeat

putimage(x,y,sauser^,xorput);

delay(pause);

putimage(x,y,sauser^,xorput);

loop: x:=x+dx; y:=y+dy;

delay(pause);

if (x<0) or (x+width+1>xm) or (y<0) or (y+height+1>ym) then

begin

x:=x-dx;

dx:=getmaxx div 10 -random(getmaxx div 5);

y:=y-dy;

dy:=getmaxy div 40 -random(getmaxy div 20);

goto loop;

end;

until keypressed;

{readln;}

CloseGraph;

end.

 

 

Пример. Летящее красное ядро.

 

Program yadro;

uses crt, graph;

var driver,regim,error:integer;

i:integer;

p:pointer;

size:word;

begin

clrscr;

driver:=detect;

InitGraph(driver,regim,'');

setcolor(4);

for i:=1 to 10 do

begin

circle(40,50,i);

end;

size:=imagesize(29,39,51,61);

getmem(p,size);

getimage(29,39,51,61,p^);

readln;

cleardevice;

for i:=1 to 400 do

begin

putimage(29+i,39+i,p^,normalput);

delay(1000);

end;

readln;

CloseGraph;

end.

 

Пример. Бьющееся сердце.

 

Program heart;

uses crt, graph;

const

sx=1.6; (* коэффициент сжатия по х *)

sy=1.3; (* по y *)

dx=250; (* смещение по х *)

dy=100; (* смещение по y *)

n1=79; (* кол-во точек, описывающих несжатое сердце *)

a1:array[1..n1*2] of word=(22,38, 20,40, 19,44, 17,48, 16,52,

17,55, 18,60, 20,64, 21,67, 23,70,

27,74, 30,77, 34,80, 37,83, 42,87,

48,90, 50,91, 52,92, 56,93, 59,94,

62,93, 65,92, 66,92, 68,90, 70,88,

71,86, 72,84, 73,81, 74,78, 75,75,

75,72, 76,68, 76,65, 76,61, 76,57,

75,53, 73,49, 75,49, 74,42, 71,38,

70,35, 69,32, 65,28, 67,25, 70,24,

73,23, 74,21, 77,20, 80,19, 83,19,

85,19, 87,20, 88,20, 91,21, 94,23,

96,25, 98,18, 94,15, 86,12, 87,11,

75,12, 71,14, 65,16, 60,20, 56,25,

50,27, 44,29, 40,30, 34,27, 30,25,

25,24, 20,24, 15,25, 8,27, 3,29,

5,40, 10,38, 14,37, 22,38);

 

n2=64; (* кол-во точек, описывающих сжатое сердце *)

a2:array[1..n2*2] of word=(22,38, 22,41, 23,47, 25,54, 26,59,

28,63, 30,67, 34,72, 36,76, 40,80,

44,84, 50,88, 55,91, 59,92, 64,91,

67,89, 69,87, 71,83, 72,79, 72,75,

72,70, 72,65, 72,60, 70,52, 69,45,

66,36, 64,30, 65,28, 67,25, 70,24,

73,23, 74,21, 77,20, 80,19, 83,19,

85,19, 87,20, 88,20, 91,21, 94,23,

96,25, 98,18, 94,15, 86,12, 87,11,

75,12, 71,14, 65,16, 60,20, 56,25,

50,27, 44,29, 40,30, 34,27, 30,25,

25,24, 20,24, 15,25, 8,27, 3,29,

5,40, 10,38, 14,37, 22,38);

 

n3=5; (* координаты пузырьков крови *)

a3:array[1..n3*2] of word=(65,23, 71,17, 77,17, 85,17, 95,20);

 

var driver,regim,error:integer;

i,k:word;

 

 

procedure bum; (* имитация стука сердца *)

begin

sound(100);

delay(4);

sound(20);

delay(7);

nosound;

end;

 

procedure bulbul; (* имитация движения крови *)

var i,k:word;

begin

for k:=1 downto 0 do

begin

setcolor(k);

for i:=1 to 5 do

begin

circle(round(a3[i*2-1]*sx),round(a3[i*2]*sy),3);

delay(60000);

end;

end;

end;

 

procedure draw1; (* рисуем несжатое сердце *)

begin

setcolor(1);

moveto(round(a1[1]*sx),round(a1[2]*sy)); (* устанавливаем указатель на первую точку сердца *)

i:=3;

while i<=(n1*2) do

begin

lineto(round(a1[i]*sx),round(a1[i+1]*sy));

inc(i,2);

end;

lineto(round(a1[1]*sx),round(a1[2]*sy));

end;

 

procedure draw2;

begin

setcolor(0);

moveto(round(a1[1]*sx),round(a1[2]*sy));

i:=3;

while i<=(n1*2) do

begin

lineto(round(a1[i]*sx),round(a1[i+1]*sy));

inc(i,2);

end;

 

setcolor(1);

moveto(round(a2[1]*sx),round(a2[2]*sy));

i:=3;

while i<=(n2*2) do

begin

lineto(round(a2[i]*sx),round(a2[i+1]*sy));

inc(i,2);

end;

bum;

bulbul;

end;

 

procedure draw3;

begin

setcolor(0);

moveto(round(a2[1]*sx),round(a2[2]*sy));

i:=3;

while i<=(n2*2) do

begin

lineto(round(a2[i]*sx),round(a2[i+1]*sy));

inc(i,2);

end;

 

setcolor(1);

moveto(round(a1[1]*sx),round(a1[2]*sy));

i:=3;

while i<=(n1*2) do

begin

lineto(round(a1[i]*sx),round(a1[i+1]*sy));

inc(i,2);

end;

end;

 

 

begin

{clrscr; }

driver:=detect;

InitGraph(driver,regim,''); (* инициализация графики *)

setviewport(dx,dy,dx+300,dy+300,true); (* устанавливаем окно просмотра *)

 

 

repeat

begin

draw1;

delay(50000);

draw2; (* рисуем сжатое сердце *)

draw3; (* стираем его и рисуем нормальное сердце *)

end;

until keypressed;

readln;

CloseGraph;

end.

 

Пример листинга курсовой работы.

program g1;

uses crt, graph;

const N=15000;

t: array [1..10] of integer = (480, 345, 530, 345, 530, 385, 480, 385, 480, 345);

var

driver, regim, error: integer;

i, j: integer;

p: pointer;

size: word;

l: byte;

st: string[8];

st1: string[34];

st2: string[54];

k, x1, y1, x2, y2: integer;

x, y: array[1..n] of integer;

begin

clrscr;

writeln('Tekstoyregim');

textcolor(10);

st:='ZADANIE:';

gotoXY(18,9);

for l:=1 to length(st) do

begin

write (st[l]);

sound(20);

delay(9900);

nosound;

end;

textcolor(15);

st1:='Ojivit za schet dvijenia elochky:';

gotoXY(18, 12);

for l:=1 to length(st1) do

begin

write (st1[l]);

sound(68);

delay(9999);

nosound;

end;

gotoXY(18, 14);

st2:='organizovat peremechenie vpravo s izmeneniem razmera.';

for l:=1 to length(st2) do

begin

write (st2[l]);

sound(21);

delay(9999);

 

nosound;

end;

readln;

driver:=detect;

Initgraph (driver, regim, 'c:\tp\bgi');

error:=graphresult;

if error <> grOk then writeln (grapherrorMSg(error))

else

begin

OuttextXY(30, 20, 'Graficheskyregim');readln;

cleardevice;

begin

x1:=0;

y1:=0;

x2:=getmaxX-2;

y2:=getmaxY-2;

rectangle(x1, y1, x2, y2);

setViewport(x1+1, y1+1, x2-1, y2-1, ClipOn);

for k:=1 to n do

begin

x[k]:=random(x2-x1);

y[k]:=random(y2-y1);

end;

for k:=1 to n do

putpixel(x[k], y[k], random(7));

setfillstyle(0, black);

bar(40, 40, 590, 438);

rectangle(40, 40, 590, 438);

BEGIN

SetColor(LightGray); Circle (390, 180, 12);

SetColor(Yellow); Arc(390, 180, 0, 180, 19);

Arc(390, 180, 0, 180, 17); Arc(390, 180, 0, 180, 15);

SetColor(LightCyan); Circle(385, 176, 2);

Circle(395, 176, 2);

SetColor(LightRed);

SetFillStyle(SolidFill, LightRed);

FillEllipse(390, 186, 5, 2);

Setcolor(lightgray);

Line(390, 192, 390, 225);

Line(390, 225, 370, 255);

Line(390, 225, 410, 255);

line(365, 200, 415, 200);

setcolor(6);

line(366, 190, 366, 210);

line(360, 190, 360, 210);

setcolor(7);

line(366, 190, 353, 190);

line(353, 190, 353, 200);

line(353, 200, 360, 195);

setcolor(6);

line(366, 210, 360, 210);

setcolor(15);

settextstyle (DefaultFont, HorizDir, 1);

OutTextXY (50, 415, 'S M A L L H E R R I N G B O N E');

setfillstyle(4, 2);

bar(80, 260, 420, 270);

setfillstyle(4, 2);

bar(400, 420, 570, 430);

setfillstyle (11, 14);

fillellipse(80, 120, 15, 15);

setcolor(8);

ellipse (532, 130, 0, 360, 30, 5);

ellipse (532, 170, 0, 360, 23, 4);

ellipse (532, 210, 0, 360, 18, 3);

ellipse (532, 250, 0, 360, 10, 2);

setcolor (yellow);

line(540, 300, 540, 270);

line(525, 287, 525, 270);

line(540, 270, 525, 270);

circle(80, 120, 15);

line(479, 344, 531, 344);

line(531, 344, 531, 385);

line(531, 385, 479, 385);

line(479, 385, 479, 344);

LINE(450, 320, 560, 320);

line(560, 320, 560, 410);

line(560, 410, 450, 410);

line(450, 410, 450, 320);

line(440, 328, 505, 268);

line(505, 268, 570, 328);

repeat

circle(505, 300, 10);

begin

randomize;

for i:=1 to 70 do

putpixel(random(630), random(107), random(succ(getmaxcolor)));

end;

for i:=1 to 21 do

begin

setcolor(Green);

begin

Sound(Random(2000));

Delay(Random(1000));

LINE(200+5*i, 100+5*i, 230+4*i, 130+4*i);

line(230+4*i, 130+4*i, 170+6*i, 130+4*i);

line(170+6*i, 130+4*i, 200+5*i, 100+5*i);

line(200+5*i, 130+4*i, 255+3*i, 165+3*i);

line(255+3*i, 165+3*i, 145+7*i, 165+3*i);

line(145+7*i, 165+3*i, 200+5*i, 130+4*i);

line(200+5*i, 165+3*i, 265+3*i, 220+i);

line(265+3*i, 220+i, 135+7*i, 220+i);

line(135+7*i, 220+i, 200+5*i, 165+3*i);

setcolor(6);

line(205+5*i, 220+i, 205+5*i, 250);

line(205+5*i, 250, 195+5*i, 250);

line(195+5*i, 250, 195+5*i, 220+i);

end;

DELAY(60000);

setcolor(0);

begin

LINE(200+5*i, 100+5*i, 230+4*i, 130+4*i);

line(230+4*i, 130+4*i, 170+6*i, 130+4*i);

line(170+6*i, 130+4*i, 200+5*i, 100+5*i);

line(200+5*i, 130+4*i, 255+3*i, 165+3*i);

line(255+3*i, 165+3*i, 145+7*i, 165+3*i);

line(145+7*i, 165+3*i, 200+5*i, 130+4*i);

line(200+5*i, 165+3*i, 265+3*i, 220+i);

line(265+3*i, 220+i, 135+7*i, 220+i);

line(135+7*i, 220+i, 200+5*i, 165+3*i);

setcolor (0);

line(205+5*i, 220+i, 205+5*i, 250);

line(205+5*i, 250, 195+5*i, 250);

line(195+5*i, 250, 195+5*i, 220+i);

end;

END;

j:=i mod 12;

for i:=0 to j do

begin

setfillstyle(j, random(13));

fillpoly(5, t);

inc(i);

delay(500);

end;

 

for i:=21 downto 1 do

begin

setcolor(Green);

begin

LINE(200+5*i, 100+5*i, 230+4*i, 130+4*i);

line(230+4*i, 130+4*i, 170+6*i, 130+4*i);

line(170+6*i, 130+4*i, 200+5*i, 100+5*i);

line(200+5*i, 130+4*i, 255+3*i, 165+3*i);

line(255+3*i, 165+3*i, 145+7*i, 165+3*i);

line(145+7*i, 165+3*i, 200+5*i, 130+4*i);

line(200+5*i, 165+3*i, 265+3*i, 220+i);

line(265+3*i, 220+i, 135+7*i, 220+i);

line(135+7*i, 220+i, 200+5*i, 165+3*i);

setcolor (6);

line(205+5*i, 220+i, 205+5*i, 250);

line(205+5*i, 250, 195+5*i, 250);

line(195+5*i, 250, 195+5*i, 220+i);

end;

DELAY(60000);

setcolor(0);

begin

LINE(200+5*i, 100+5*i, 230+4*i, 130+4*i);

line(230+4*i, 130+4*i, 170+6*i, 130+4*i);

line(170+6*i, 130+4*i, 200+5*i, 100+5*i);

line(200+5*i, 130+4*i, 255+3*i, 165+3*i);

line(255+3*i, 165+3*i, 145+7*i, 165+3*i);

line(145+7*i, 165+3*i, 200+5*i, 130+4*i);

line(200+5*i, 165+3*i, 265+3*i, 220+i);

line(265+3*i, 220+i, 135+7*i, 220+i);

line(135+7*i, 220+i, 200+5*i, 165+3*i);

setcolor(0);

line(205+5*i, 220+i, 205+5*i, 250);

line(205+5*i, 250, 195+5*i, 250);

line(195+5*i, 250, 195+5*i, 220+i);

end;

END;

j:=i mod 12;

for i:=0 to j do

begin

setfillstyle(j, random(13));

fillpoly(5, t);

inc(i);

delay(500);

end;

nosound;

until keypressed;

end;end;

readln;

closegraph;

RestoreCrtMode;

writeln('Tekstoyregim');

repeat

textbackground(9);

textcolor(10);

gotoXY (27, 7);

writeln('* * * * * * * * * * * * * * * *'); gotoXY(27, 8);

writeln('* *'); gotoXY(27, 9);

writeln('* Vipolnila: *'); gotoXY(27, 10);

writeln('* *'); gotoXY(27, 11);

writeln('* Sarafan Ekaterina *'); gotoXY(27, 12);

writeln('* *'); gotoXY(27, 13);

writeln('* Andreevna *'); gotoXY(27, 14);

writeln('* *'); gotoXY(27, 15);

writeln('* stydentka 1 kyrsa *'); gotoXY(27, 16);

writeln('* *'); gotoXY(27, 17);

writeln('* gryppi BM-71 *'); gotoXY(27, 18);

writeln('* *'); gotoXY(27, 19);

writeln('* * * * * * * * * * * * * * * *');

sound(540);delay(30000);nosound;

sound(480);delay(10000);nosound;

sound(420);delay(20000);nosound;

sound(480);delay(20000);nosound;

sound(540);delay(10000);nosound;delay(10000);

sound(540);delay(10000);nosound;delay(10000);

sound(540);delay(30000);nosound;

sound(480);delay(10000);nosound;delay(10000);

sound(480);delay(10000);nosound;delay(10000);

sound(480);delay(30000);nosound;

sound(540);delay(10000);nosound;delay(10000);

sound(660);delay(10000);nosound;delay(10000);

sound(660);delay(30000);nosound;

until keypressed;

readln;

end;

end.

 

 

Date: 2015-07-24; view: 400; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию