#include #define Chance 80 #define Div 5 #define Diff 4 #define Max 20 #define Nqix 50 #define abs(x) ((x)<0?(-(x)):(x)) int contrl[12], intin[256], ptsin[256], intout[256], ptsout[256]; int i,evwhich,dummy,rand,handle; int xstart,ystart,xwidth,ywidth,xcen,ycen; int pxy[4],mx; long Randx=1; main() { /* Set the system up to do GEM calls */ appl_init(); /* Get the handle of the desktop */ handle=graf_handle(&dummy,&dummy,&dummy,&dummy); /* Open the workstation. */ for(i=1; i<10; ++i) intin[i] = 1; intin[10] = 2; v_opnvwk(intin, &handle, intout); pxy[0]=0; pxy[1]=0;pxy[2]=intout[0];pxy[3]=intout[1]; xwidth=pxy[2]; ywidth= pxy[3]; graf_mouse(0,i); draw_sample(); v_clsvwk(handle); /* Release GEM calls */ appl_exit(); } draw_sample() { int temp[4], rgb_in[4], iter, loop; int dx0, dy0, dx1, dy1; int x0[Nqix], x1[Nqix], y0[Nqix], y1[Nqix]; int flag; v_clrwk(handle); vswr_mode(handle,3); Srand( (long) Gettime()); i=0; flag=0; dx0=5; dy0=2; dx1= -4; dy1=3; x0[0] = (int)(xwidth/3); y0[0] = (int)(ywidth/3); x1[0] = (int)(2*xwidth/3); y1[0] = (int)(2*ywidth/3); while (!Bconstat(2)){ if (flag) Vector( x0[i], y0[i], x1[i], y1[i]); Vector( bounce(x0, i, &dx0, xwidth-1), bounce(y0, i, &dy0, ywidth-1), bounce(x1, i, &dx1, xwidth-1), bounce(y1, i, &dy1, ywidth-1)); if (++i >= Nqix) { i=0; flag=1; } } Vector(x0[i], y0[i], x1[i], y1[i]); for(flag=(i+1)%Nqix;flag!=i;flag=(flag+1)%Nqix) Vector(x0[flag], y0[flag], x1[flag], y1[flag]); } Srand(x) long x; { Randx = x; } Rand() { return((Randx = Randx * 505360173 + 907633385) & 0x7fffffff); } bounce (x, off, dx, lim) int *x, off, *dx, lim; { int j,t1,t2; t1 = (long) Rand(); t2 = (long) Rand(); if (t1%100 > Chance) *dx = *dx + t2%Diff-Diff/2; if(*dx > Max || *dx < -Max) *dx = *dx / Div; j = *dx + x[(off+Nqix-1)%Nqix]; if (j > lim) { j = lim; *dx = -(*dx); } else if (j < 0) { j = 0; *dx = -(*dx); } return (x[off] = j); } Vector(a,b,c,d) int a,b,c,d; { ptsin[0] = a; ptsin[1] = b; ptsin[2] = c; ptsin[3] = d; v_pline(handle, 2, ptsin); } ..,. N¹  LßøN^Nu?<ÿþ`$?<ÿÿ`?<`¾<¸bTJNuBgJkî¾<8cîHç~€$Þ¾<ŠcP¾<¨c <Lß~TNu,<¢ùƒ>.