实例编程:弹簧单摆的模拟演示代码
来源:优易学  2011-12-2 10:01:44   【优易学:中国教育考试门户网】   资料下载   IT书店

  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上调试过,能够完整模拟弹性系数变化时摆球的变化轨迹。速度,质量,摆线长度等都是可调的。
  有的地方还不完善,请大家多指教!

上一页  [1] [2] 

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训