椭圆的扫描转换算法.docx

椭圆的扫描转换算法.docx

ID:52719773

大小:174.67 KB

页数:6页

时间:2020-03-29

椭圆的扫描转换算法.docx_第1页
椭圆的扫描转换算法.docx_第2页
椭圆的扫描转换算法.docx_第3页
椭圆的扫描转换算法.docx_第4页
椭圆的扫描转换算法.docx_第5页
资源描述:

《椭圆的扫描转换算法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二 椭圆的扫描转换算法1.实验目的:了解和掌握中点算法和Bresenham算法。2.实验内容:1)中点Bresenhan画椭圆算法。2)编写源程序,在计算机上编译运行,画出正确的图形和输出交点坐标。3.实验步骤:1)实验原理:设长短半轴分别为a、b,计算的初始位置为<0,b)。椭圆的方程为:。令i.推导圆弧的上半部分<即第一区域)绘制公式:对于第一区域,如图1所示,点坐标为<),<)为点正右边的点,<)为点右下方的点,<)为、的中点。令6/6第一区域示意图当,时,的初始值为:时,应取P2作为下一个像素点,则其正右方的点的坐标为

2、<,),右下方的点的坐标为<,),中点坐标为<,)。b5E2RGbCAP此时,时,应取P1作为下一个像素点,则其正右方的点的坐标为<,),右下方的点的坐标为<,),中点坐标为<,)。p1EanqFDPw此时,ii.推导圆弧的下半部分<即第二区域)绘制公式:对于第二区域,如图2所示,P点坐标为<,),P1<,)为P点正下方的点、P2<,)为P点右下方的点,M<,)为P1、P2的中点。DXDiTa9E3d6/6令设P坐标的初始值为=,=,=的初始值为:图2第二区域示意图时,应取P1作为下一个像素点,则其正下方的点的坐标为<,),右下方

3、的点的坐标为<,),中点坐标为<,)。RTCrpUDGiT此时,时,应取P2作为下一个像素点,则其正下方的点的坐标为<,),右下方的点的坐标为<,),中点坐标为<,)。5PCzVD7HxA此时,iii.根据对称性原理计算其他3个象限的坐标。6/62)编写程序的源程序:functionMidBresenhamElipse(a,b>x=0。y=b。d1=b*b+a*a*(-b+0.25>。plot(x,y,'*'>。plot(-x,-y,'*'>。plot(-x,y,'*'>。plot(x,-y,'*'>。pause(0.5>。hol

4、don。whileb*b*(x+1>ifd1<=0d1=d1+b*b*(2*x+3>。x=x+1。elsed1=d1+b*b*(2*x+3>+a*a*(-2*y+2>。x=x+1。y=y-1。endplot(x,y,'*'>。plot(-x,-y,'*'>。plot(-x,y,'*'>。plot(x,-y,'*'>。pause(0.5>。endholdoff。d2=b*b*(x+0.5>*(x+0.5>+a*a*(y-1>*(y-1>-a*a*b*b。holdon。whiley>0ifd2<=0d2=d2+

5、b*b*(2*x+2>+a*a*(-2*y+3>。x=x+1。y=y-1。elsed2=d2+a*a*(-2*y+3>。y=y-1。endplot(x,y,'*'>。plot(-x,-y,'*'>。plot(-x,y,'*'>。plot(x,-y,'*'>。pause(0.5>。end6/6holdoff。4)运行源程序:在MATLAB命令窗口执行如下命令:>>MidBresenhamElipse(7,10>得到:在MATLAB命令窗口执行如下命令:>>MidBresenhamElipse(70,100>得到:6/64.实验总结:

6、通过这次实习,对中点算法和Bresenham算法有了更进一步的了解,同时懂得了理论与实践相结合的重要性,只有实践才能培养我们的独立思考的能力和动手能力,在这次实习过程中可以说是困难重重,但在同学的耐心讲解和自己查阅资料的情况下,都得到了进一步地解决。总的来说,这次实习收获还是挺多的。jLBHrnAILg申明:所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。6/6

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

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

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