计算机图形学(中点画圆)

计算机图形学(中点画圆)

ID:15215782

大小:4.69 MB

页数:6页

时间:2018-08-02

计算机图形学(中点画圆)_第1页
计算机图形学(中点画圆)_第2页
计算机图形学(中点画圆)_第3页
计算机图形学(中点画圆)_第4页
计算机图形学(中点画圆)_第5页
资源描述:

《计算机图形学(中点画圆)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、西北师范大学计算机科学与工程学院学生实验报告学号专业计算机科学与技术班级师范(1)班姓名课程名称图形学课程类型实验名称实验二中点画圆实验目的:1.了解画圆法的基本思想; 2.掌握画圆法的基本步骤。二、实验原理1、判别式是中点画线法的关键,(0<=k<=1)判别式是为了判断下一个点是在当前点正右边还是右上方,是和中点比较的结果。d的含义下一个点到中点的垂直距离,它的正负可以做下一个位置的判断。初值:d = 2*a + b,增量:上一个点d>=0,则d+2*a,上一个点d<=0,则d+2*(a+b)。2、中点法是利用将中点坐标代入到判别式中,通过判断得到点的

2、位置(仅有两种情况)。圆有很好的对称性,八对称性(其实是n对称性),只要求出右上方的八分之一部分就可以得到整个圆弧上的坐标,显然,判别式值小于0,中点在圆内,取正右方的点,d+2x+3;判别式大于等于0,中点在圆外或圆上,取右下方的点,d+2(x-y)+5;  d的初值,将(1,R-0.5)代入判别式,=1.25 - R。为了提高效率,我们转化为整数运算,e = d - 0.25 = 1 - R。x++ 直到 x>y。3、中点画圆法是利用圆心在坐标原点(0,0),半径为R(圆的方程X^2+Y^2=R^2),将每个像素的中点坐标代入圆的方程得到d,再通过d

3、的值来确定中点与圆的位置。中点画圆法绘出的只是一个完整圆弧的八分之一,然后根据圆良好的对称性,绘出和参考点对称的另外七个点,再用中点画圆法,以生成的这几个点为基础,绘出其它七段圆弧,构成一个完整的园。这七个点的坐标分别为:(x0+x,y0-y,c),(x0+x,y0+y,c), (x0-x,y0-y,c), (x0-x,y0+y,c),(x0-y,y0-x,c),(x0-y,y0+x,c), (x0+y,y0+x,c), (x0+y,y0-x,c)。 找到和参考点对称的另外几个点,再在中点绘制圆弧的定义函数中调用,绘制另外的几段圆弧。三、实验代码及截图代

4、码:#include#includeMidpointCircle(intxc,intyc,intr,intcolor){intx=0,y=r,d=1-r;WholeCircle(xc,yc,x,y,color);while(x<=y){if(d<0){d+=2*x+3;x++;}else{d+=2*(x-y)+5;x++;y--;WholeCircle(xc,yc,x,y,color);}}}WholeCircle(intxc,intyc,intx,inty,intcolor){putpixel(xc+x,yc+

5、y,color);putpixel(xc-x,yc+y,color);putpixel(xc+x,yc-y,color);putpixel(xc-x,yc-y,color);putpixel(xc+y,yc+x,color);putpixel(xc-y,yc+x,color);putpixel(xc+y,yc-x,color);putpixel(xc-y,yc-x,color);}intmain(){intgdriver=DETECT,gmode;initgraph(&gdriver,&gmode,"");MidpointCircle(300,250,2

6、00,5);getch();closegraph();}实验结果:实验总结:通过本次实验本人掌握常用图形程序设计和编程实现贝塞尔曲线算法,得出相应的输出图形;希望在能为以后的学习打下基础。实验评语:实验成绩教师签名

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。