




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三圆的生成算法的实现班级08信计2班学号20080502054姓名曲凯歌分数一、实验目的和要求1.理解圆生成的基本原理。2.掌握几种常见的圆生成算法。3.利用VisualC++实现圆生成的中点画圆算法。二、实验内容1.利用中点画圆算法、Bresenham画圆法在屏幕上生成一整圆。2.利用中点算法画一椭圆。三、实验步骤1.圆生成的基本原理(1)圆的特征圆的定义为到给定中心位置距离为的点集。圆心位于原点的圆有4条对称轴:和。若已知圆弧上一点,可以得到其关于4条对称轴的其他7个点,这种性质称为八对称性。2.实现各种圆的生成算法,包括中点生成算法、Bresenham生成算法等。程序运行后的菜单界面如图所示。圆生成图形的程序运行界面首先创建工程名为“圆的生成算法的实现”的单文档应用程序框架,操作步骤如下:(1)创建单文档应用程序框架。启动VisualC++,选择“文件/新建”菜单命令,在弹出的新建对话框中单击“工程”标签;选择.MFCAppWizard(exe),在“工程名称”编辑框中输入“圆的生成算法的实现”(也可以使用英文名称),选择所要存放的位置后,单击“确定”按钮,出现Stept1对话框;选择“单个文档”选项,单击“下一步”按钮,在接着的Stept2~Stept5中,均可以直接单击“下一步”按钮完成应用程序框架的构建。也可以在Stept1步选择“单文档”(Singledocument)后,直接单击“完成”按钮完成。(2)添加菜单项及消息处理函数在工作区中的ResourceView标签中,单击Menu项左边的“+”,然后双击其子项IDR_MAINFRAME,弹出编辑主菜单项,根据表1中定义的菜单项资源来编辑菜单,利用MFCClassWizard为应用程序添加与菜单项相关的消息处理函数。菜单标题菜单项标题菜单项ID消息消息处理函数圆的生成中点画圆ID_MIDPOINTCIRCLECOMMANDOnMidpointcircleBresenham画圆ID_BRESENHAMCIRCLECOMMANDOnBresenhamcircle椭圆的生成中点画椭圆ID_MIDPOINTELLISPECOMMANDOnMidpointellispe表1生成圆和椭圆的菜单项资源及消息处理函数(3)添加程序代码在CMyView.cpp文件中相应的位置添加各算法的程序代码,在VisualC++的MFC中绘制图形,一般可以调用一个“CDC”类,从CDC开始,添加代码。中点算法画圆。利用中点画圆算法画出圆心在、半径为R的圆,其VC程序设计代码如下:voidCMyView::OnMidpointcircle(){ CDC*pDC=GetDC(); intx0=150,y0=120,r=100,color=RGB(0,0,255),x,y,d; x=0; y=r; d=1-r; pDC->SetPixel(x,y,color); while(x<=y) { if(d<0)d+=2*x+3; else{d+=2*(x-y)+5;y--;} x++; pDC->SetPixel(x+x0,y+y0,color); pDC->SetPixel(-x+x0,y+y0,color); pDC->SetPixel(-x+x0,-y+y0,color); pDC->SetPixel(x+x0,-y+y0,color); pDC->SetPixel(y+x0,x+y0,color); pDC->SetPixel(-y+x0,x+y0,color); pDC->SetPixel(-y+x0,-x+y0,color); pDC->SetPixel(y+x0,-x+y0,color); } ReleaseDC(pDC);}Bresenham算法画圆。利用Bresenham画圆算法画出圆心在、半径为R的圆,其VC程序设计代码如下:voidCMyView::OnBresenhamcircle(){ CDC*pDC=GetDC(); intx0=100,y0=100,x,y,r=80,c=0; floate,d; e=3-2*r; x=0; y=r; while(x<=y) { if(e<0){e=e+4*x+6;x++;} else{e=e+4*(x-y)+10;x++;y--;} pDC->SetPixel(x+x0,y+y0,c); pDC->SetPixel(-x+x0,y+y0,c); pDC->SetPixel(-x+x0,-y+y0,c); pDC->SetPixel(x+x0,-y+y0,c); pDC->SetPixel(y+x0,x+y0,c); pDC->SetPixel(-y+x0,x+y0,c); pDC->SetPixel(-y+x0,-x+y0,c); pDC->SetPixel(y+x0,-x+y0,c); } ReleaseDC(pDC);}中点算法画椭圆。设中心在,长半轴为,短半轴为。其VC程序设计代码如下:voidCMyView::OnMidpointellispe(){ CDC*pDC=GetDC(); intx0=200,y0=100,a=120,b=60,x,y,color=100; floatd1,d2; x=0; y=b; d1=b*b+a*a*(-b+0.25); pDC->SetPixel(x+x0,y+y0,color); pDC->SetPixel(-x+x0,-y+y0,color); pDC->SetPixel(-x+x0,y+y0,color); pDC->SetPixel(x+x0,-y+y0,color); while(b*b*(x+1)<a*a*(y-0.5)) { if(d1<=0){d1+=b*b*(2*x+3);x++;} else{d1+=b*b*(2*x+3)+a*a*(-2*y+2);x++;y--;} pDC->SetPixel(x+x0,y+y0,color); pDC->SetPixel(-x+x0,-y+y0,color); pDC->SetPixel(-x+x0,y+y0,color); pDC->SetPixel(x+x0,-y+y0,color); } d2=b*b*(x+0.5)*(x+0.5)+a*a*(y-1)*(y-1)-a*a*b*b; while(y>0) { if(d2<=0){d2+=b*b*(2*x+2)+a*a*(-2*y+3);x++;y--;} else{d2+=a*a*(-2*y+3);y--;} pDC->SetPixel(x+x0,y+y0,color); pDC->SetPixel(-x+x0,-y+y0,color); pDC->SetPixel(-x+x0,y+y0,color); pDC->SetPixel(x+x0,-y+y0,color); } ReleaseDC(pDC);}四、实验结果分析调试是程序成功后,运行结果如下:中点算法生成的圆(蓝色圆弧)如图3-2,Bresenham算法生成的圆(黑色圆弧)如图3-3,中点算法生成的椭圆如图3-4。图3-2中点法画圆效果图图3-3Bresenham算法画圆效果图图3-4中点法画椭圆效果图其中中点画圆法实现原理:构造圆函数,并构造判别式:。若,则应取为下一像素,而且再下一像素的判别式为:。若,则应取为下一像素,而且下一像素的判别式为:。这里讨论的是按顺时针方向生成第二个八分圆,则第一个像素是,判别式的初始值。而Bresenham画圆法与中点画圆算法类似,考虑圆心在原点,半径为的8分圆,取为起点,按顺时针方向生成圆。在这种情况下,从开始,每
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开发部项目管理年终总结
- 第八章 幼儿园数与运算活动的设计与指导教学案例
- 部编版五年级语文下册第一单元标准检测卷(含答案)
- 大客车常用知识培训课件
- 《GBT 40413-2021应急物流公共标识代码编制规则》全新解读
- 寒假旅游出行安全
- 护理科研的意义和特点
- 小自考行政管理挑战与试题及答案
- 学校项目管理研究报告
- 2025年甲乙双方村庄共建桥梁合同模板
- 计算机技术与软件安全审计试题及答案
- (新课标)专题08+易考必考典型选择题专项复习- 三年级语文下册期末备考(统编版)
- 2024年中央戏剧学院招聘笔试真题
- 成都设计咨询集团有限公司2025年社会公开招聘(19人)笔试参考题库附带答案详解
- 药学知识联合用药
- 2025年江苏太仓市文化教育投资集团有限公司招聘笔试参考题库附带答案详解
- 广东省中山市2024-2025学年九年级上学期期末语文试题
- 装饰装修木工施工合同
- 铁代谢障碍性贫血的相关检验课件
- DBJ50T-187-2014 重庆市住宅用水一户一表设计、施工及验收技术规范
- 2025年全球及中国双金属氰化物(DMC)催化剂行业头部企业市场占有率及排名调研报告
评论
0/150
提交评论