Качание маятника в плоскости перпендикулярной плоскости монитора
Uses Graph,Crt;
const al = Pi/6;
var bgColor,i:byte;
x,y,dx,dy,dr,h,ErrCode:integer;
r:word;
a,da:real;
function initializeGraph:integer;
var grDriver : Integer;
grMode : Integer;
begin
grDriver:=Detect;
InitGraph(grDriver, grMode, '');
initializeGraph:=GraphResult;
end;
function getH(a:real):integer;
begin
getH := round (400 * cos(a));
end;
begin
ErrCode:=initializeGraph;
if ErrCode <> grOk then
WriteLn('Ошибка инициализации графики:', GraphErrorMsg(ErrCode))
else
begin
bgColor:=0;
rectangle(1,1,GetMaxX-1,GetMaxY-1);
x:=(GetMaxX-1) div 2; y:=300; r:=80; dr:=-1; da:=-al/30;
a := al;
repeat
setColor(15);
circle(x, getH(a), r);
Delay(400);
if ((a<-al) or (a>al)) then
begin
Delay(3*400);
da := -da; dr:=-dr;
end;
setColor(bgColor);
circle(x, getH(a), r);
inc(r,dr);
a:=a+da;
until keyPressed;
CloseGraph;
end
end.
|