uses crt,graph;
{вращение точки вокруг центра}
procedure Vrash(a:real;var x,y:integer;x0,y0,d:integer);
begin
x:=x0+round(d*cos(a));
y:=y0-round(d*sin(a));
end;
var gd,gm:integer;
ch:char;
x0,y0,w,h,d,a1x,a1y,a2x,a2y,a3x,a3y,a4x,a4y,a5x,a5y,a6x,a6y,k:integer;
u,a1,a2,a3,a4:real;
begin
clrscr;
repeat
write('Dlina (20-400) w=');
readln(w);
until (w>=20)and(w<=400);
repeat
write('Shirina (20-400) h=');
readln(h);
until (h>=20)and(h<=400);
d:=round(sqrt(sqr(w/2)+sqr(h/2)));{радиус вращения}
u:=arctan(h/w);
a1:=u; a2:=pi-u; a3:=pi+u; a4:=2*pi-u;{начальные углы вершины}
writeln('Press Enter...');
readln;
gd:=0;
initgraph(gd,gm,'');
x0:=getmaxX div 2;y0:=getmaxY div 2;{центр экрана}
outtextXY(x0-35,30,'Vyhod - any key...');
{координаты вершин}
a1x:=x0+round(d*cos(a1));a1y:=y0-round(d*sin(a1));
a2x:=x0+round(d*cos(a2));a2y:=y0-round(d*sin(a2));
a3x:=x0+round(d*cos(a3));a3y:=y0-round(d*sin(a3));
a4x:=x0+round(d*cos(a4));a4y:=y0-round(d*sin(a4));
{рисуем стартовое изображение}
Setcolor(14);
line(a1x,a1y,a2x,a2y);
line(a2x,a2y,a3x,a3y);
line(a3x,a3y,a4x,a4y);
line(a1x,a1y,a4x,a4y);
repeat
delay(20); {задержка 20 млс}
setcolor(0); {цвет фона, стираем изображение}
line(a1x,a1y,a2x,a2y);
line(a2x,a2y,a3x,a3y);
line(a3x,a3y,a4x,a4y);
line(a1x,a1y,a4x,a4y);
Vrash(a1,a1x,a1y,x0,y0,d);
Vrash(a2,a2x,a2y,x0,y0,d);
Vrash(a3,a3x,a3y,x0,y0,d);
Vrash(a4,a4x,a4y,x0,y0,d);
Setcolor(14); {выбранный цвет - рисуем}
line(a1x,a1y,a2x,a2y);
line(a2x,a2y,a3x,a3y);
line(a3x,a3y,a4x,a4y);
line(a1x,a1y,a4x,a4y);
a1:=a1+0.01;a2:=a2+0.01;a3:=a3+0.01;a4:=a4+0.01;
until keypressed;
end.
Smile :D http://www.cyberforum.ru/
{вращение точки вокруг центра}
procedure Vrash(a:real;var x,y:integer;x0,y0,d:integer);
begin
x:=x0+round(d*cos(a));
y:=y0-round(d*sin(a));
end;
var gd,gm:integer;
ch:char;
x0,y0,w,h,d,a1x,a1y,a2x,a2y,a3x,a3y,a4x,a4y,a5x,a5y,a6x,a6y,k:integer;
u,a1,a2,a3,a4:real;
begin
clrscr;
repeat
write('Dlina (20-400) w=');
readln(w);
until (w>=20)and(w<=400);
repeat
write('Shirina (20-400) h=');
readln(h);
until (h>=20)and(h<=400);
d:=round(sqrt(sqr(w/2)+sqr(h/2)));{радиус вращения}
u:=arctan(h/w);
a1:=u; a2:=pi-u; a3:=pi+u; a4:=2*pi-u;{начальные углы вершины}
writeln('Press Enter...');
readln;
gd:=0;
initgraph(gd,gm,'');
x0:=getmaxX div 2;y0:=getmaxY div 2;{центр экрана}
outtextXY(x0-35,30,'Vyhod - any key...');
{координаты вершин}
a1x:=x0+round(d*cos(a1));a1y:=y0-round(d*sin(a1));
a2x:=x0+round(d*cos(a2));a2y:=y0-round(d*sin(a2));
a3x:=x0+round(d*cos(a3));a3y:=y0-round(d*sin(a3));
a4x:=x0+round(d*cos(a4));a4y:=y0-round(d*sin(a4));
{рисуем стартовое изображение}
Setcolor(14);
line(a1x,a1y,a2x,a2y);
line(a2x,a2y,a3x,a3y);
line(a3x,a3y,a4x,a4y);
line(a1x,a1y,a4x,a4y);
repeat
delay(20); {задержка 20 млс}
setcolor(0); {цвет фона, стираем изображение}
line(a1x,a1y,a2x,a2y);
line(a2x,a2y,a3x,a3y);
line(a3x,a3y,a4x,a4y);
line(a1x,a1y,a4x,a4y);
Vrash(a1,a1x,a1y,x0,y0,d);
Vrash(a2,a2x,a2y,x0,y0,d);
Vrash(a3,a3x,a3y,x0,y0,d);
Vrash(a4,a4x,a4y,x0,y0,d);
Setcolor(14); {выбранный цвет - рисуем}
line(a1x,a1y,a2x,a2y);
line(a2x,a2y,a3x,a3y);
line(a3x,a3y,a4x,a4y);
line(a1x,a1y,a4x,a4y);
a1:=a1+0.01;a2:=a2+0.01;a3:=a3+0.01;a4:=a4+0.01;
until keypressed;
end.
Smile :D http://www.cyberforum.ru/
Комментариев нет:
Отправить комментарий