- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中点画线法 若d?0 -M在直线上方-取P1; 此时再下一个象素的判别式为 d1=F(xp+2, yp+0.5) =a(xp+2)+b(yp+0.5)+c = a(xp +1)+b(yp +0.5)+c +a =d+a; 增量为a P=( x p , y p ) Q P2 P1 * * 中点画线法 若d0-M在直线下方-取P2; 此时再下一个象素的判别式为 d2= F(xp+2, yp+1.5) =a(xp+2)+b(yp+1.5)+c = a(xp +1)+b(yp +0.5)+c +a +b =d+a+b ; 增量为a+b P=( x p , y p ) Q P2 P1 * 中点画线法 画线从(x0, y0)开始,d的初值 d0=F(x0+1, y0+0.5)= a(x0 +1)+b(y0 +0.5)+c = F(x0, y0)+a+0.5b = a+0.5b 由于只用d 的符号作判断,为了只包含整数运算, 可以用2d代替d来摆脱小数,提高效率。 * 中点画线法 void Midpoint Line (int x0,int y0,int x1, int y1,int color) { int a, b, d1, d2, d, x, y; a=y0-y1, b=x1-x0, d=2*a+b; d1=2*a, d2=2* (a+b); x=x0, y=y0; drawpixel(x, y, color); while (xx1) { if (d0) {x++; y++; d+=d2; } else {x++; d+=d1;} drawpixel (x, y, color); } /* while */ } /* mid PointLine */ * 中点画线法 例:用中点画线法P0(0,0) P1(5,2) a=y0-y1=-2 b=x1-x0=5 d0=2a+b=1 d1=2a=-4 d2=2(a+b)=6 i xi yi d 1 0 0 1 2 1 0 -3 3 2 1 3 4 3 1 -1 5 4 2 5 0 1 2 3 4 5 3 2 1 * Bresenham画线算法 在直线生成的算法中Bresenham算法是最有效的算法之一。令 k=Δy/Δx,就0≤k≤1的情况来说明Bresenham算法。由DDA算法可知: yi+1=yi+k (1) 由于k不一定是整数,由此式求出的yi也不一定是整数,因此要用坐标为(xi,yir)的象素来表示直线上的点,其中yir表示最靠近yi的整数。 * Bresenham画线算法 设图中xi列上已用(xi,yir)作为表示直线的点,又设B点是直线上的点,其坐标为(xi+1,yi+1),显然下一个表示直线的点( xi+1,yi+1,r)只能从图中的C或者D点中去选。设A为CD边的中点。 若B在A点上面则应取D点作为( xi+1,yi+1,r),否则应取C点。 xi Xi+1 Yi,r Yi+1,r C D B A ε(x)的几何意义 为能确定B在A点上面或下面,令 ε(xi+1)=yi+1-yir-0.5 (2) 若B在A的下面,则有ε(xi+1)0,反之,则ε(xi+1)0。由图可知 yi+1,r=yir+1,若ε(xi+1)≥0 (3) yi+1,r=yir, 若ε(xi+1)≤0 * Bresenham画线算法 由式(2)和式(3)可得到 ε(xi+2)=yi+2 - yi+1,r - 0.5 =yi+1 + k - yi+1,r - 0.5 (4) yi+1 - yir -0.5 + k - 1,当ε(xi+1)≥0 yi+1 - yir -0.5 + k, 当ε(xi+1)≤0 ε(xi+2)= ε(xi+1) + k -1 ,当ε(xi+1)≥0 ε(xi+2)= ε(xi+1) + k , 当ε(xi+1)≤0 由式(1)和式(2)可得到 ε(x2)= k - 0.5 (5) * 浙江大学计算机图形学 程序如下: BresenhamLine(x0,y0,x1,y1,color) int x0,y0,x1,y1,color;
您可能关注的文档
- 《Android应用与游戏开发》11054126毛坯版.docx
- 《Android应用与游戏开发》第1章Android简介.ppt
- 《Android应用与游戏开发》第2章Android开发环境.ppt
- 《Android应用与游戏开发》第3章Android应用程序.ppt
- 《Android应用与游戏开发》第4章Android生命周期.ppt
- 《Android应用与游戏开发》第5章Android用户界面.ppt
- 《Android应用与游戏开发》第6章组件通信与广播消息.ppt
- 《Android应用与游戏开发》第7章后台服务.ppt
- 《Android应用与游戏开发》第9章 位置服务与地图应用.ppt
- 《Android应用与游戏开发》第10章AndroidNDK开发.ppt
- 《OpenGL计算机三维图形程序设计》第四讲 曲线曲面造型理论.ppt
- 《OpenGL计算机三维图形程序设计》第一讲 绪论.ppt
- 《OpenGL计算机三维图形程序设计》混合抗锯齿.pptx
- 《OpenGL计算机三维图形程序设计》三维程序设计-opengl.ppt
- 《OpenGL计算机三维图形程序设计》视图.pptx
- 《OpenGL计算机三维图形程序设计》魏刘宏11054126 OpenGl第三次作业.docx
- 《OpenGL计算机三维图形程序设计》魏刘宏11054126 OpenGl第一次作业.docx
- 《OpenGL计算机三维图形程序设计》纹理.pptx
- 《OpenGL计算机三维图形程序设计》颜色与光照.pptx
- 《RFID原理及应用》第1章 RFID概论.ppt
文档评论(0)