*** Running Man Graphics Demo *** By R A Fryer E-mail R.Fryer@BTInternet.com I would be grateful if anyone could send me the Xport file of this program. Use X and circle to control demo and START to exit. The BACKSIDE and FRONTSIDE parts of this program are identical except that all the 1's are changed to 2's. *** The code *** OPEN WINDOW 640,512 setup() REPEAT SETDISPBUF ss ss=1-ss SETDRAWBUF ss j1=PEEK("port1") SETRGB 1,10,60,10 FILL RECTANGLE 0,230 TO 640,512 SETRGB 1,10,10,60 FILL RECTANGLE 0,230 TO 640,0 IF AND(j1,8192)=0 CLEAR WINDOW FOR i=3 TO 0 STEP-1 ka=30*sn(rp) kx1=leg*sn(160+ka) ky1=-leg*cs(160+ka) kx2=leg*sn(160-ka) ky2=-leg*cs(160-ka) aa=80*sn(MOD(rp+320,360)) ax1=leg*sn(220+aa) ay1=-leg*cs(220+aa) ax2=leg*sn(220-aa) ay2=-leg*cs(220-aa) bx1=kx1/6-3 bx2=kx2/6-3 sx1=sho*sn(180-ka)*sn(ba+45) sy1=sho*sn(180-ka)*cs(ba+45) sx2=sho*sn(180+ka)*sn(ba+45) sy2=sho*sn(180+ka)*cs(ba+45) sx=back*sn(ba) sy=-back*cs(ba) wa=70*sn(MOD(rp+30,360)) ex1=arm*sn(180-ka) ey1=-arm*cs(180-ka) ex2=arm*sn(180+ka) ey2=-arm*cs(180+ka) wx1=arm*sn(90-wa) wy1=-arm*cs(90-wa) wx2=arm*sn(90+wa) wy2=-arm*cs(90+wa) na=30+10*sn(MOD(rp*2+90,360)) hx=neck*sn(na) hy=-neck*cs(na) ti=i*30 SETRGB 1,140-ti,80-ti,80-ti REM BACKSIDE tx=x+kx1:ty=y+ky1 FILL TRIANGLE x+ky1/4,y-kx1/4 TO x-ky1/4,y+kx1/4 TO tx+ky1/5,ty-kx1/5 FILL TRIANGLE tx+ky1/5,ty-kx1/5 TO tx-ky1/5,ty+kx1/5 TO x-ky1/4,y+kx1/4 FILL CIRCLE tx,ty,leg/5 tx=tx+ax1:ty=ty+ay1 FILL TRIANGLE x+kx1+ay1/5,y+ky1-ax1/5 TO x+kx1-ay1/5,y+ky1+ax1/5 TO tx+ay1/8,ty-ax1/8 FILL TRIANGLE tx+ay1/8,ty-ax1/8 TO tx-ay1/8,ty+ax1/8 TO x+kx1-ay1/5,y+ky1+ax1/5 FILL TRIANGLE tx,ty TO x+kx1+ax1*.7,y+ky1+ay1*.7 TO tx+ay1*.6,ty-ax1*.6 FILL CIRCLE x+bx1,y,leg/3.5 tx=x+sx+sx1:ty=y+sy+sy1 FILL CIRCLE tx,ty,arm/3 FILL TRIANGLE tx+ey1/3,ty-ex1/3 TO tx-ey1/3,ty+ex1/3 TO tx+ex1+ey1/4,ty+ey1-ex1/4 FILL TRIANGLE tx-ey1/3,ty+ex1/3 TO tx+ex1+ey1/4,ty+ey1-ex1/4 TO tx+ex1-ey1/4,ty+ey1+ex1/4 tx=tx+ex1:ty=ty+ey1 FILL CIRCLE tx,ty,arm/4 FILL TRIANGLE tx+wy1/4,ty-wx1/4 TO tx-wy1/4,ty+wx1/4 TO tx+wx1+wy1/6,ty+wy1-wx1/6 FILL TRIANGLE tx-wy1/4,ty+wx1/4 TO tx+wx1-wy1/6,ty+wy1+wx1/6 TO tx+wx1+wy1/6,ty+wy1-wx1/6 FILL CIRCLE tx+wx1,ty+wy1,arm/4 SETRGB 1,150-ti,90-ti,90-ti REM MID tx=x+sx:ty=y+sy FILL TRIANGLE tx-sy/4,ty+sx/4 TO tx+sy/4,ty-sx/4 TO tx+hx,ty+hy FILL TRIANGLE tx+sy/4,ty-sx/4 TO tx+hx,ty+hy TO tx+hx+hy/3,ty+hy-hx/3 FILL CIRCLE tx+hx,ty+hy,neck/2 FILL TRIANGLE x-sy/5,y+sx/5 TO x+sy/5,y-sx/5 TO tx-sy/4,ty+sx/4 FILL TRIANGLE x+sy/5,y-sx/5 TO tx-sy/4,ty+sx/4 TO tx+sy/4,ty-sx/4 SETRGB 1,160-ti,100-ti,100-ti REM FRONTSIDE tx=x+kx2:ty=y+ky2 FILL TRIANGLE x+ky2/4,y-kx2/4 TO x-ky2/4,y+kx2/4 TO tx+ky2/5,ty-kx2/5 FILL TRIANGLE tx+ky2/5,ty-kx2/5 TO tx-ky2/5,ty+kx2/5 TO x-ky2/4,y+kx2/4 FILL CIRCLE tx,ty,leg/5 tx=tx+ax2:ty=ty+ay2 FILL TRIANGLE x+kx2+ay2/5,y+ky2-ax2/5 TO x+kx2-ay2/5,y+ky2+ax2/5 TO tx+ay2/8,ty-ax2/8 FILL TRIANGLE tx+ay2/8,ty-ax2/8 TO tx-ay2/8,ty+ax2/8 TO x+kx2-ay2/5,y+ky2+ax2/5 FILL TRIANGLE tx,ty TO x+kx2+ax2*.7,y+ky2+ay2*.7 TO tx+ay2*.6,ty-ax2*.6 FILL CIRCLE x+bx2,y,leg/3.5 tx=x+sx+sx2:ty=y+sy+sy2 FILL CIRCLE tx,ty,arm/3 FILL TRIANGLE tx+ey2/3,ty-ex2/3 TO tx-ey2/3,ty+ex2/3 TO tx+ex2+ey2/4,ty+ey2-ex2/4 FILL TRIANGLE tx-ey2/3,ty+ex2/3 TO tx+ex2+ey2/4,ty+ey2-ex2/4 TO tx+ex2-ey2/4,ty+ey2+ex2/4 tx=tx+ex2:ty=ty+ey2 FILL CIRCLE tx,ty,arm/4 FILL TRIANGLE tx+wy2/4,ty-wx2/4 TO tx-wy2/4,ty+wx2/4 TO tx+wx2+wy2/6,ty+wy2-wx2/6 FILL TRIANGLE tx-wy2/4,ty+wx2/4 TO tx+wx2-wy2/6,ty+wy2+wx2/6 TO tx+wx2+wy2/6,ty+wy2-wx2/6 FILL CIRCLE tx+wx2,ty+wy2,arm/4 rp=MOD(rp+7,360) IF AND(j1,16384)=0 x=MOD(x+100+leg/16,840)-100 NEXT i rp=MOD(rp+341,360) ayp1=y+ky1+ay1 ayp2=y+ky2+ay2 my=MAX(ayp1,ayp2) IF my>350 y=y-(my-350) IF my<350 my=my+.6 UNTIL (AND(j1,8)>0) END SUB setup() ss=0 DIM sn(360),cs(360) FOR i=0 TO 360 sn(i)=SIN(i/180*PI) cs(i)=COS(i/180*PI) NEXT i rp=0 x=-100:y=250 leg=52 arm=35 back=50 sho=20 neck=32 ba=20 END SUB