第三章 基本图形扫描转换.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 基本图形扫描转换

扫描转换的基本概念 Jack Elton Bresenham简介 直线的扫描转换算法 圆的扫描转换算法 直线的扫描转换 圆的扫描转换 本章小结 3.1 直线的扫描转换 直线的中点Bresenham算法的原理:每次在主位移方向上走一步,另一个方向上走不走步取决于中点误差项的值。 给定理想直线的起点坐标为P0(x0,y0),终点坐标为P1(x1,y1),则直线的隐函数方程为: 3.整数中点误差项 令fi=2di△x可去掉前面公式中的浮点数 则有 (3-7) (3-8) 仍然根据(3-3)判断下一个点的y值 4.算法: x=x0;y=y0; dx=x1-x0;dy=y1-y0; f=dx-2*dy;//式(3-7) for (i=1; i=dx+1; i++) {setpixel(x,y,color); //画点 x=x+1; if (f0) {y=y+1; //式(3-3) f=f+2*dx;}//式(3-8) f=f-2*dy; } 5.实例 起点(2,1),终点(10,7),写出每步fi,xi,yi 3.2.2 构造中点误差项 习题 3 ⑴当d0时,下一步的中点坐标为: (3-12) ⑵当d≥0时,下一步的中点坐标为: (3-14) 圆的起点为P0(0,R),x为主位移方向。因此,第一个中点是(1,R-0.5),对应的di的初始值为: (3-15) 2.中点误差项的初始值 圆中点Bresenham算法 void CTestView::MBCircle(double R,CDC *pDC)//圆中点Bresenham算法 { double x,y,d; d=1.25-R;x=0;y=R; for(x=0;x=y;x++) { CirclePoint(x,y,pDC);//调用八分法画圆子函数 if (d0) d+=2*x+3; else { d+=2*(x-y)+5; y--; } } } void CTestView::CirclePoint(double x, double y,CDC *pDC)//八分法画圆子函数 { //圆心坐标 CP2 pc=CP2((p0.x+p1.x)/2.0,(p0.y+p1.y)/2.0); //定义圆的边界颜色 COLORREF clr=RGB(0,0,255); pDC-SetPixelV(Round(x+pc.x),Round(y+pc.y),clr); //x,y pDC-SetPixelV(Round(y+pc.x),Round(x+pc.y),clr); //y,x pDC-SetPixelV(Round(y+pc.x),Round(-x+pc.y),clr);//y,-x pDC-SetPixelV(Round(x+pc.x),Round(-y+pc.y),clr);//x,-y pDC-SetPixelV(Round(-x+pc.x),Round(-y+pc.y),clr);//-x,-y pDC-SetPixelV(Round(-y+pc.x),Round(-x+pc.y),clr);//-y,-x pDC-SetPixelV(Round(-y+pc.x),Round(x+pc.y),clr);//-y,x pDC-SetPixelV(Round(-x+pc.x),Round(y+pc.y),clr);//-x,y } 直线、圆和椭圆作为二维场景中的基本图形,其生成算法的优劣对整个图形系统的效率至关重要。直线段的扫描转换是计算机图形学中最基本的算法。中点Bresenham 算法避免了复杂运算,使用了增量算法,使单点基本图形生成算法已无优化的余地,获得了广泛的应用。 本章重点掌握算法的基本原理与形成过程,借鉴其思想,算法的效率极有可能是靠一点一滴积累形成的,在编程时需要对算法设计精益求精。 本章小结 计算起点坐标为(0,0),终点坐标(12,9)直线的中点Bresenham算法的每一步坐标值以及中点偏差判别式d的值,填入表3-1中,并用黑色绘制图3-29中的直线段的扫描转换像素。 图3-29 像素点阵 * 下一张 第三章 本章学习目标 本章内容 直线、圆

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档