/*跳ね返りの運動*/ #include <gucc/gucc.h> #include <stdio.h> #include <math.h> void G_INIT(void); void G_CLS(void); void G_COLOR(int); void G_LINE(int,int,int,int); void G_CIRCLE(int,int,int); void main(void) { double x,y,vx,vy,e; int t1,t2; G_INIT(); G_CLS(); x=0.0; y=0.0; vx=10.0; vy=10.0; e=0.5; t1=0; while(y<480.0) { x=vx*(double)t1; y=vy*(double)t1; G_COLOR(t1%16); G_CIRCLE((int)x,(int)y,2); t1++; } t2=0; while (y>0.0) { x=vx*(double)t1; y=480.0-1.0*e*vy*(double)t2; G_COLOR(t1%16); G_CIRCLE((int)x,(int)y,2); t1++; t2++; } getch(); }摩擦のある平面上の物体の運動
/*摩擦のある平面上の運動*/ #include <gucc/gucc.h> #include <stdio.h> #include <math.h> void G_INIT(void); void G_CLS(void); void G_COLOR(int); void G_LINE(int,int,int,int); void G_CIRCLE(int,int,int); void main(void) { double v0,v,mu,m,g,x; int t; scanf("%lf",&v0); scanf("%lf",&mu); scanf("%lf",&m); g=9.8; G_INIT(); G_CLS(); v=v0; t=0; while(v>0.0) { /*v=(v0)-(mu*m*g*t) ===> x=v0*t-(0.5*mu*m*g*t*t)*/ v=v0-(mu*m*g*(double)t); x=v0*(double)t-(0.5*mu*m*g*(double)t*(double)t); G_COLOR(t%16); G_CIRCLE((int)x,200,2); t++; } getch(); }リサージュ図形
/*リサージュ図形*/ #include <gucc/gucc.h> #include <stdio.h> #include <math.h> void G_INIT(void); void G_CLS(void); void G_COLOR(int); void G_PSET(int, int,int); void main(void) { int t,nx,ny; double x,y; double w; double a; printf("nx?\n"); scanf("%d",&nx); printf("ny?\n"); scanf("%d",&ny); G_INIT(); G_CLS(); a=200.0; w=0.01; for (t=0; t<1000; t++) { x=a*cos((double)nx*w*(double)t)+200; y=a*sin((double)ny*w*(double)t)+200; G_PSET((int)x,(int)y,t%16); } getch(); }