注册 登录
编程论坛 C图形专区

模拟自由落体下落又弹起程序

qq349004853 发布于 2008-05-31 12:45, 1817 次点击
 我觉得编程并不是一件枯燥的事情,我们可以利用其它科所学的知识编一些有趣的小程序,像下面这个程序就用到了高中物理中自由落体的有关知识,我们只有把所学知识学以致用时,我们才是真正的掌握了知识.下面的这个程序虽然比较粗陋,但它结合了物理的有关知识,我想也应该能给你一些启发.我用了两中方法实现动画,因为我觉得我们做一件事时,思路不能太单一,而因该多方面考虑问题.
方法1
#include<graphics.h>
#include<dos.h>
#define g 10
main()
{int x=320,y,t;
 int gdriver=DETECT,gmode;
 initgraph(&gdriver,&gmode,"");
  cleardevice();
   setcolor(4);
   do{
    for(t=0;t<10;t++)
       {y=0.5*g*t*t;
         circle(x,y,20);

         delay(40000);
         cleardevice();
        }
    for(t=0;t<10;t++)
       {y=405-(90*t-0.5*g*t*t);
         circle(x,y,20);

         delay(40000);
         cleardevice();
        }
     }while(!kbhit());
     closegraph();
  }
方法2
#include<graphics.h>
#include<dos.h>
#define g 10
main()
 {int x=320,y,t;
   int size;
  int gdriver=DETECT,gmode;
    void *buffer;
  initgraph(&gdriver,&gmode,"");
  cleardevice();
 circle(320,10,10);
  size=imagesize(310,0,330,20);
  buffer=malloc(size);
  getimage(310,0,330,20,buffer);
  cleardevice();
  do{
       for(t=0;t<10;t++)
       {y=0.5*g*t*t;
        putimage(x,y,buffer,COPY_PUT);
        delay(40000);
        cleardevice();
        }
        for(t=0;t<10;t++)
       {y=405-(90*t-0.5*g*t*t);
        putimage(x,y,buffer,COPY_PUT);
        delay(40000);
        cleardevice();
        }
      }while(!kbhit());
    closegraph();
    }
3 回复
#2
panzhengwei2008-06-04 10:06
顶一个!不错不错!学习,,,,,,,,,,,,,,,,
#3
blg20132008-06-12 13:58
学习了 我也正在学
#4
sl2311011572010-12-02 23:23
为什么没有流程图啊
很需要呢..
哪位大侠能帮忙画一下啊
1