U0 Main() { "Julia Set Generator\n"; SettingsPush; I64 k,j; CBGR bgr; for (k=0; k<16; k++) { j=0xFF*k/15; bgr.b=j; bgr.g=j; bgr.r=j; SetVGAPaletteColor(k, bgr); } CDC *dc=DCAlias; I64 row, col; for (row=0; row<ROWS; row++) { for (col=0; col<COLS; col++) { F64 r=LEFT+ToF64(COL_INC*col), i=BOTTOM+ToF64(ROW_INC*row); dc->color=getColor(-0.8, 0.156, r, i); I64 x=col*(640/COLS), y=row*(480/ROWS); GrRect(dc, x, y, 640/COLS, 480/ROWS); } } PressAKey; DCFill(dc); DCDel(dc); SettingsPop; }
U0 Init(CDC *dc) { I64 i,w=Fs->win_pixel_width,h=Fs->win_pixel_height; F64 scale=h/5.0; DocClear; DCFill(dc); dc->color=BLACK; GrLine(dc,0,h/2,w-1,h/2); GrLine(dc,w/2,0,w/2,h-1); for (i=-2;i<=2;i++) { dc->color=BLACK; GrLine(dc,w/2-3,h/2-scale*i,w/2+3,h/2-scale*i); if (i) { dc->color=DKGRAY; GrPrintF(dc,w/2+5,h/2-scale*i-FONT_HEIGHT/2,"%5.1f",ToF64(i)); } } for (i=-4;i<=4;i++) { dc->color=BLACK; GrLine(dc,w/2+scale*i,h/2-3,w/2+scale*i,h/2+3); if (i) { dc->color=DKGRAY; GrPrintF(dc,w/2+scale*i-7*FONT_WIDTH/2,h/2+5+FONT_HEIGHT,"%5.1f*T",ToF64(i)); } } }
U0 Bounce() { CDC *dc=DCAlias; I64 i,msg_code,p1,update; Init; try { //Catch <CTRL-ALT-C> while (TRUE) { update=win_updates; do for (i=0;i<16;i++) { dc->color=i; GrPlot(dc,x[i].i32[1],y[i].i32[1]); x[i]+=dx[i]; y[i]+=dy[i]; if (!(0<=x[i]<Fs->win_pixel_width<<32)) { x[i]-=dx[i]; dx[i]=-dx[i]; } if (!(0<=y[i]<Fs->win_pixel_height<<32)) { y[i]-=dy[i]; dy[i]=-dy[i]; } } while (update==win_updates); while (msg_code=ScanMsg(&p1,NULL,1<<MSG_KEY_DOWN|1<<MSG_RESIZE|1<<MSG_MOVE)) if (msg_code==MSG_KEY_DOWN) { if (p1==CH_SHIFT_ESC || p1==CH_ESC) goto bc_done; else Init; } else DCFill(dc); } bc_done: } catch CatchAll; DCFill(dc); DCDel(dc); }
U0 SndMathDemo() { CDC *dc=DCAlias; Init(dc); dc->color=RED; FunDraw1(dc,&MySin); "$$FG,RED$$Sin$$FG$$\n"; PressAKey; dc->color=BLUE; FunDraw2(dc,&Saw,1.0); "$$FG,BLUE$$Saw$$FG$$\n"; PressAKey; dc->color=GREEN; FunDraw2(dc,&FullSaw,1.0); "$$FG,GREEN$$FullSaw$$FG$$\n"; PressAKey; Init(dc); dc->color=RED; FunDraw1(dc,&MyCos); "$$FG,RED$$Cos$$FG$$\n"; PressAKey; dc->color=BLUE; FunDraw2(dc,&Caw,1.0); "$$FG,BLUE$$Caw$$FG$$\n"; PressAKey; dc->color=GREEN; FunDraw2(dc,&FullCaw,1.0); "$$FG,GREEN$$FullCaw$$FG$$\n"; PressAKey; Init(dc); dc->color=RED; FunDraw1(dc,&MySin); "$$FG,RED$$Sin$$FG$$\n"; PressAKey; dc->color=BLUE; FunDraw2(dc,&Tri,1.0); "$$FG,BLUE$$Tri$$FG$$\n"; PressAKey; dc->color=GREEN; FunDraw2(dc,&FullTri,1.0); "$$FG,GREEN$$FullTri$$FG$$\n"; PressAKey; DCFill(dc); DCDel(dc); }