
- •Кафедра «Информационные и управляющие системы»
- •Содержание
- •Текст программы
- •I: integer;
- •Velo.Draw(r2,r3,X,y,0,angvelp); { делает тоже самое }
- •Velo.Draw(r2,r3,X,y,20,angvelp); { рисует 2 – корпус, педалька }
- •If keypressed then { условие – кнопка нажата }
- •Velo: VeloT;
- •X,y: integer; { позиция }
- •Initgraph(gd,gm,'');
- •VelVelo(X,y,Wheel.R1,Velo.R2,Velo.R3,Wheel.N,u,up,Velo,Wheel);
- •Скриншоты программы.
I: integer;
radian: real;
begin
radian:= (360/spic)*(pi/180); { для разделения колеса на равные участки }
{ СПИЦЫ }
setcolor(c2); { цвет }
setlinestyle(4,4,4); { стиль }
for i:= 1 to spic do
begin
line(x2+50,y2,x2+50+round(rad1*cos(ang+i*radian)),
y2-round(rad1*sin(ang+i*radian))); { спицы для 1-ого колеса }
line(x2-45,y2,x2-45+round(rad1*cos(ang+i*radian)),
y2-round(rad1*sin(ang+i*radian))); { спицы для 2-ого колеса }
end;
circle(x2+50, y2, rad1); { 1 колесо }
circle(x2-45, y2, rad1); { 2 колесо }
end;
procedure VelVelo(x,y,r1,r2,r3,n: integer; angvel, angvelp:
real; Velo: VeloT; Wheel: WheelT);
var
dxvel: integer; { изменение скорости }
dangvel,dangvelp: real; { для вращения спиц и педали }
key: char; { для кнопки }
begin
dangvel:= 0;
dangvelp:= 0;
dxvel:= 0;
while true do
begin
{ ИНСТРУКЦИЯ }
outtextxy(200,20,'Start - D');
outtextxy(200,40,'Tormoz - A');
outtextxy(200,60,'Vihod s programi - E');
Wheel.DrawW(r1,n,x,y,0,angvel); { удаляет старый корпус }
Velo.Draw(r2,r3,X,y,0,angvelp); { делает тоже самое }
if x > getmaxX then x:= -20; { условие возвращения вел. в начало экрана }
x:=x + dxvel; { изменение координаты Х }
angvel:= angvel + dangvel; { изменение угла спиц (вращение) }
angvelp:= angvelp + dangvelp; { изменение угла педали (вращение) }
Wheel.DrawW(r1,n,x,y,20,angvel); { рисует 1 - колесо }
Velo.Draw(r2,r3,X,y,20,angvelp); { рисует 2 – корпус, педалька }
{ КНОПОЧКИ }
If keypressed then { условие – кнопка нажата }
begin
key:= readkey;
case key of
'd':
begin
dxvel:=dxvel+(6*r1 div 72);
{ увел. Скорости – передвиж. и вращ. }
dangvel:= dangvel - (pi/72)*(r2/r3);
dangvelp:= dangvelp - (pi/72);
end;
'a':
begin
if (dxvel <> 0) and (dangvel<>0) then
{ только вперёд }
Begin
{ уменьшение скорости и вращения }
dxvel:=dxvel-(6*r1 div 72);
dangvel:= dangvel + (pi/72)*(r2/r3);
dangvelp:= dangvelp + (pi/72);
end;
end;
'e':
begin
halt; { выход – закрывает всё }
end;
end;
end;
delay(30); { пауза }
end;
end;
{ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ }
var