画4个圆并填充环,自己做的
笑傲心扬吧
全部回复
仅看楼主
level 5
笑傲心扬 楼主
/* WIN-TC BGI 图形编程模板 */
#include "dos.h"#
include "Conio.h"
#include "graphics.h"#
define closegr closegraph
#define Locate 300#
define R1 50
#define R2 80#
define R3 110#define R4 140void initgr(void) /* BGI初始化 */{ int gd=DETECT,gm=0; /* 和gd=VGA,gm=VGAHI是同样效果 */ registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */ initgraph(&gd,&gm,"");}void MidpointCircle(int r,int color,int flag){ int x,y,d; x=0; y=r; d=1-r; putpixel(y,x,color); while(x
0) { if(d<0) { d+=2*x-2*y+5; x++; y--; } else { d+=3-2*y; y--; } if(flag==0) { putpixel(Locate-x,Locate-y,color); delay(1000); putpixel(Locate+x,Locate-y,color); delay(1000); } else { putpixel(Locate-y,Locate+x,color); delay(1000); putpixel(Locate+y,Locate+x,color); delay(1000); } }}void FillCircle(int x0,int y0,int color){ int x,y; float d1,d2,d3,d4; for(y=y0-R4;y<=y0+R4;y++) for(x=x0-R4;x<=x0+R4;x++) { d1=(x-x0)*(x-x0)+(y-y0)*(y-y0)-R4*R4; d2=(x-x0)*(x-x0)+(y-y0)*(y-y0)-R3*R3; d3=(x-x0)*(x-x0)+(y-y0)*(y-y0)-R2*R2; d4=(x-x0)*(x-x0)+(y-y0)*(y-y0)-R1*R1; if(d1<=0&&d2>=0) putpixel(x,y,color); if(d3<=0&&d4>=0) putpixel(x,y,color); delay(100); }}void main(){initgr(); /* BGI初始化 */printf("计算0512 2005810049 ");MidpointCircle(R1,1,0);MidpointCircle(R1,1,1);MidpointCircle(R2,2,0);MidpointCircle(R2,2,1);MidpointCircle(R3,3,0);MidpointCircle(R3,3,1);MidpointCircle(R4,4,0);MidpointCircle(R4,4,1);getch();FillCircle(Locate,Locate,5);getch(); /* 暂停一下,看看前面绘图代码的运行结果 */closegr(); /* 恢复TEXT屏幕模式 */}
2007年12月03日 11点12分 1
1