do
{
for(i=0;i<1;i++)
{
setcolor(cl++);
cl %= 16;
for(i=0;i<180;i=i+5)
{
arc(A,B,180+i,i+182,L);
}
setcolor(0);
line(x,y,A,B);
setcolor(11);
circle(x,y,1);
X0=sqrt((x-A)*(x-A)+(y-B)*(y-B));
X=X0-L;
c=(x-A)/X0;
s=(y-B)/X0;
G1=G*c;
G2=G*s;
F=k*X;
F1=-F*c;
F2=M*g-F*s-G2*s+G1*c;
a1=F1/M;
a2=F2/M;
v1=v1+a1;
v2=v2+a2;
x=x+v1;
y=y+v2;
setcolor(1);
circle(x,y,1);
setcolor(14);
line(x,y,A,B);
for(i=1;i<sp;i++)
{
delay(1000);
}
}
}
while(!kbhit()==1);
q=getch();
cleardevice();
if(q=='e'||q=='E') goto END;
if(q=='r'||q=='R') goto BG;
if(q=='s'||q=='s') sp=sp+1;
if(q=='a'||q=='A') sp=sp-1;
if(q=='-'||q=='_') L=L-1*w;
if(q=='='||q=='+') L=L+1*w;
if(q==','||q=='<') k=k-0.1*w;
if(q=='.'||q=='>') k=k+0.1*w;
if(q=='z'||q=='Z') M=M-0.1*w;
if(q=='x'||q=='X') M=M+0.1*w;
if(q=='c'||q=='C') m=m-0.1*w;
if(q=='v'||q=='V') m=m+0.1*w;
if(q=='w'||q=='W') w=w+1;
if(q=='q'||q=='Q') w=w-1;
goto GN;
END: closegraph();
}
已经在TC2.0上调试过,能够完整模拟弹性系数变化时摆球的变化轨迹。速度,质量,摆线长度等都是可调的。
有的地方还不完善,请大家多指教!
责任编辑:小草