下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XXXXXXXX大学(计算机图形学)实验报告实验名称画圆法实验时间年月日专业姓名学号预习操作座位号教师签名总评一、实验目的:1.了解画圆法的基本思想;2.掌握画圆法的基本步骤。二、实验原理:1.中点画圆法中点画圆法是利用圆心在坐标原点圆的方程,将每个像素的中点坐标代入圆的方程得到d,再通过d的值来确定中点与圆的位置。若d<0,则取P1为下一象素,而且再下一象素的判别式为若d>=0,则应取P2为下一象素,而且下一象素的判别式为第一个象素是(0,R),判别式d的初始值为中点画圆法绘出的只是一个完整圆弧的八分之一,然后根据圆良好的对称性,绘出和参考点对称的另外七个点,再用中点画圆法,以生成的这几个点为基础,绘出其它七段圆弧,构成一个完整的园。这七个点的坐标分别为:(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)。找到和参考点对称的另外几个点,再在中点绘制圆弧的定义函数中调用,绘制另外的几段圆弧。三、实验内容:八分之一画圆法:///////////////////////////////////////////////////////////////////////////////CMy4Viewconstruction/destructionvoidMidpointCircle(CDC*pdc,intx0,inty0,intr,intcolor){ intx,y; floatd; x=0; y=r; d=1.25-r; pdc->SetPixel(x0+x,y0-y,color); while(x<=y) { x++; if(d<0) { d+=2*x+3; } else { y--;d+=2*(x-y)+5; } pdc->SetPixel(x0+x,y0-y,color); pdc->SetPixel(x0-x,y0-y,color); pdc->SetPixel(x0+x,y0+y,color); pdc->SetPixel(x0-x,y0+y,color); pdc->SetPixel(x0+y,y0-x,color); pdc->SetPixel(x0-y,y0-x,color); pdc->SetPixel(x0+y,y0+x,color); pdc->SetPixel(x0-y,y0+x,color); }}CMy0View::CMy0View(){ //TODO:addconstructioncodehere}///////////////////////////////////////////////////////////////////////////////CMy4ViewmessagehandlersvoidCMy4View::On1(){ //TODO:Addyourcommandhandlercodehere intx0,y0; x0=138,y0=138; intr=100; intcolor=RGB(255,0,255); CClientDCdc(this); MidpointCircle(&dc,x0,y0,r,color);}中心画椭圆法:///////////////////////////////////////////////////////////////////////////////CMy9ViewmessagehandlersvoidCMy9View::On1(){ //TODO:Addyourcommandhandlercodehere CDC*pdc=GetDC(); intx0=400,y0=200,a=120,b=60,x,y,color=(RGB(0,0,255)); doubled1,d2; x=0;y=b; d1=b*b+a*a*(-b+0.25);pdc->SetPixel(x0+x,y0+y,color); pdc->SetPixel(x0-x,y0-y,color); pdc->SetPixel(x0-x,y0+y,color); pdc->SetPixel(x0+x,y0-y,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(x0+x,y0+y,color); pdc->SetPixel(x0-x,y0-y,color); pdc->SetPixel(x0-x,y0+y,color); pdc->SetPixel(x0+x,y0-y,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(x0+x,y0+y,color); pdc->SetPixel(x0-x,y0-y,color); pdc->SetPixel(x0-x,y0+y,color); pdc->SetPixel(x0+x,y0-y,color); } ReleaseDC(pdc);}四、实验心得: 八分之一画圆法中,第一段代码的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2168-2024盐雾试验箱校准规范
- 2024年国际汽车销售代理合同
- 2024年度保险代理协议
- 2024年害虫防治定期服务协议
- 2024区块链技术应用与合作合同
- 2024年专业同声传译合作协议
- 2024版蔬菜采购合同书文书
- 2024区块链技术研发公司与金融机构之间的数字货币发行与交易合同
- 2024民间私人贷款合同范本个人民间贷款合同范本
- 2024年个性化金融服务系统建设合同
- 《城市轨道交通桥梁养护技术规范》
- 《水土保持技术》课件-项目八 拦渣措施
- 机动车检测站违规检验整改报告
- 2024年建筑电工复审考试题库附答案
- 2024年4月自考04737C++程序设计试题及答案含评分参考
- 睡眠医学智慧树知到期末考试答案章节答案2024年广州医科大学
- GB/T 17259-2024机动车用液化石油气钢瓶
- 国开(河北)2024年《中外政治思想史》形成性考核1-4答案
- 床边护理带教体会
- 2024年社区工作者考试必背1000题题库及必背答案
- MOOC 微型计算机原理与接口技术-南京邮电大学 中国大学慕课答案
评论
0/150
提交评论