



付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Z=82附近原子核形状共存研究
- 面向数据与设备异构的联邦学习优化方法研究与应用
- 精神疾病健康指导
- 精油开背培训
- 超声科科室简介
- 关注心理健康 创造和谐班级
- 预防食源性疾病课件
- 顺丰快递教学课件
- 幼儿园教师教育教学能力提升培训
- 音乐说课教育课件
- 北京市海淀区2025届高一下生物期末检测模拟试题含解析
- JT∕T 795-2023 事故汽车修复技术规范
- 2024四川广元市检察机关招聘聘用制书记员22人笔试备考题库及答案解析
- 内科患者VTE风险评估表
- 一年级上册美术教案-第1课 让大家认识我:诚实最好 ▏人美版
- 科学认识天气智慧树知到期末考试答案2024年
- (高清版)DZT 0064.15-2021 地下水质分析方法 第15部分:总硬度的测定 乙二胺四乙酸二钠滴定法
- 心理体检收费目录
- 雅鲁藏布江米林-加查段沿线暴雨泥石流危险度评价的中期报告
- 抗生素的正确使用与合理配比
- 读书分享读书交流会《局外人》课件
评论
0/150
提交评论