else { } x++;
putpixel(x+p,y+q,c); putpixel(-x+p,y+q,c);
dt+=b*b*(2*x+3)+a*a*(-2*y+2); y--;
putpixel(x+p,-y+q,c);
}
putpixel(-x+p,-y+q,c);
double db=b*b*(x+0.5)*(x+0.5)+a*a*(y-1)*(y-1)-a*a*b*b;
while( y > 0 ) {
if( db < 0) { } else { } y--;
putpixel(x+p,y+q,c); putpixel(-x+p,y+q,c);
db+=a*a*(-2*y+3);
db+=b*b*(2*x+2)+a*a*(-2*y+3); x++;
putpixel(x+p,-y+q,c);
}
putpixel(-x+p,-y+q,c);
- 24 -
}
void main() { }
int a = 0; int b = 0; int c = 0; int x = 0; int y = 0; char m[20]={0};
int gdriver=DETECT,gmode;
printf(\请输入长轴长和短轴长度:\\n\printf(\长轴 x = \scanf(\printf(\短轴 y = \scanf(\
printf(\请输入椭圆的圆心坐标:\\n\scanf(\printf(\请输入椭圆的颜色:\scanf(\
initgraph(&gdriver,&gmode,\ Bresenham_Ciecle(a,b,x,y,c); sprintf(m,\outtextxy(x,y,m);
getch(); closegraph();
3.5运行结果图
- 25 -
图3.5.1 Bresenham画椭圆算法运行结果截图
图3.5.2 Bresenham画椭圆算法运行结果截图
图3.5.3 Bresenham画椭圆算法运行结果截图
- 26 -
图3.5.4 Bresenham画椭圆算法运行结果截图
?参考文献
[1] 王汝传,黄海平,林巧民.计算机图形学教程(第二版).北京:人民邮电出版社,2009.
[2]谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2005.
?本次实验总结或体会
通过本次试验我看到了在计算机图形学这门课中有意义的一面,增加了我学习这门课的兴趣;但同时我也认识到了自身在语言掌握中的不足和有待加强的地方;在以后的学习中要更加努力、要多动手、多学习。
?教师评分
- 27 -
- 28 -