中点画线算法.ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中点画线算法

淮海工学院 * 中 点 画 线 算 法 讲授者:曲 毅 中 点 画 线 算 法 直线扫描转换 计算机图形学 图形扫描转换 知识点地位 在屏幕上 在纸上 VS 画一条连接点P0(1,1)和P1(5,3)的直线段 (连续的) (离散的) 扫描 转换 中点法 案 例 引 入 就是要找出显示平面上最佳逼近理想直线的那些象素的坐标值,并将这些象素置成所要求的颜色 算 法 原 理 假定直线斜率k在0~1之间(x方向步进1,求y的取值) 当前象素点为P (xp,yp) 下一个象素点有两种可选择点 Pu(xp+1,yp+1), Pu与Pd的中点M(xp+1,yp+0.5) F(M)0 F(M)=0 F(M)0 F(M)0时,点M在直线下方,取M上方点Pu 为下一个象素点 F(M)0时,点M在直线上方,取M下方点Pd为下一个象素点 F(M)=0时,点M在直线上,取Pu 或Pd均可,默认取Pd为下一个象素点 Pu(xp+1,yp+1) M(xp+1,yp+0.5) Pd(xp+1,yp) P(xp,yp) Pd(xp+1,yp) 判别方法 条件背景 过点(x0,y0)、(x1, y1)的直线段L的方程为 F(x, y)=ax+by+c=0,其中, a=y0-y1, b=x1-x0, c=x0y1-x1y0 F(M)的符号作为判别的依据 中点画线算法 算 法 实 现 每一个像素的计算量是4个加法,2个乘法 d=F(M)=F(xp+1, yp+0.5)=a(xp+1)+b(yp+0.5)+c 判别式 下一像素点 效率分析 乘法 加法 初始值 xp=x0, yp=y0 注意到 d是xp, yp的线性函数,可采用增量计算,提高运算效率 中点画线算法 算 法 优 化 若当前象素处于d=0情况,取Pd(xp+1, yp) 要判断下一个象素位置,应计算d= F(M’ ) =F(xp+2, yp+0.5)=a(xp+2)+b(yp+0.5) =d+a 增量为a 判别式增量 若d0时,则取象素Pu(xp+1, yp+1) 要判断再下一象素,则要计算 d= F(M’ ) = F(xp+2, yp+1.5)=a(xp+2)+b(yp+1.5)+c =d+a+b 增量为a+b Pd(xp+1,yp) Pu(xp+1,yp+1) M ’(xp+2,yp+0.5) M ’(xp+2,yp+1.5) 中点画线算法 算 法 优 化 判别式初值 画线从(x0, y0)开始,F(x0, y0)=0, d 的初值 d0=F(x0+1, y0+0.5) =F(x0, y0)+a+0.5b=a+0.5b ? 我们使用的只是d的符号,而且d的增量都是整数,只是初始值包含小数。因此,我们可以用2d代替d来摆脱浮点数 d0=2a+b d增量=2a d增量=2a+2b 浮点数 整数 效率分析 整数化改进 注意到 中点画线算法 把初始值和2个增量都扩大2倍 算 法 总 结 算法流程 F(x, y)=ax+by+c=0, a=y0-y1, b=x1-x0 起点(x0,y0)、终点(x1, y1) 初始化a=y0-y1; b=x1-x0 d=2a+b, d1=2a;d2=2(a+b) x=x0;y=y0;画像素(x, y) xx1? d0? x=x+1 y=y+1 d=d+d2 x=x+1 d=d+d1 画像素(x, y) Y N Y N 结束 中点画线算法 条件整合 算 法 实 例 用中点画线方法扫描转换连接两点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 0 1 2 3 4 5 1 3 2 下一个像素点 起始点 终止点 当前像素点 0 0 1 x y d 1 0 - 3 2 1 3 3 1 - 1 4 2 5 5 2 1 动画演示 初始条件 实

文档评论(0)

maritime5 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档