画线算法帧缓冲器的装载圆.ppt

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

北大计算机系多媒体与人机交互 第三章 输出图元 第三章 输出图元 3.1.1 DDA画线算法 直线段生成 求与直线段充分接近的 像素集 像素间网格均匀 坐标是整型 假设 直线段的宽度为1 3.1.1 DDA画线算法 数字微分(DDA)画线算法 (Digital Differential Analyzer) 3.1.1 DDA画线算法 数字微分(DDA)画线算法 (digital differential analyzer) 直接求交算法: 划分区间[0, 1],dt=1/n 计算坐标 取整 复杂度:乘法+加法+取整 3.1.1 DDA画线算法 DDA增量算法 xi+1=x1+?x*ti+1=xi+?x*dt=xi+xinc yi+1=y1+?y*ti+1=yi+?y*dt=yi+yinc 复杂度:加法+取整 3.1.1 DDA画线算法 DDA算法优点 利用光栅特性消除了直线方程中的乘法,比直接使用直线方程的计算速度快! DDA算法缺点: 取整误差的积累使得对于较长线段所计算的像素位置偏离实际线段。 需要进行浮点数运算。 运行效率低。 不便于用硬件实现 。 3.1.2 Bresenham画线算法 目标:消除DDA算法中的浮点运算 3.1.2 Bresenham画线算法 3.1.2 Bresenham画线算法 3.1.2 Bresenham画线算法 3.1.2 Bresenham画线算法 3.1.3 并行画线算法 让每一个处理器处理一组像素 适用于系统中的处理器非常多 的场合。 给定一条线段,可以得到它的 包围盒,包围盒中共有?x*?y 个像素。让每个处理器处理一 个像素,设像素的坐标为(x,y), 则像素到线段的垂直距离: d=A*x+B*y+C 其中,A=-?y/linelength B=?x/linelength C=(x1?x-y1?x)/linelength 3.1.3 并行画线算法 像素到线段的垂直距离: d=A*x+B*y+C 其中,A=-?y/linelength B=?x/linelength C=(x1?x-y1?x)/linelength Linelength=(?x2+?y2)1/2 d小于某个设定值,该像素就被 设置成指定的线段颜色。可以看出, 这种并行画线算法特别适合于画具有 一定宽度的线段。 3.2 帧缓冲器的装载 3.3.1 圆的生成 3.3.2 椭圆的生成 3.3.1 圆的生成 处理对象:圆心在原点的圆弧 圆的八对称性 两种直接离散方法: 离散点: x2+y2=R (x,sqrt(R2-x2)) 离散角度:x=Rcosθ y=Rsinθ 缺点:计算量大。 3.3.1 圆的生成 圆弧的正负划分性 F(x,y)=x2+y2-R2 圆弧外的点:F(X,Y)>0 圆弧内的点:F(X,Y)<0 3.3.1 圆的生成 中点画圆算法的优点: 效率高。 只用到整数的加法、 减法和左移。 (乘2)运算。 适合用硬件实现。 3.3.1 圆的生成 3.3.1 圆的生成 3.3.1 圆的生成 3.3.1 圆的生成 3.3.2 椭圆的生成 3.4 其他曲线 3.4.1 画锥曲线 3.4.2 多项式曲线 3.5 并行曲线画法 圆:等份圆弧或x坐标 椭圆或其它曲线:扫描线分段方法 多边形的表示方法 顶点表示 点阵表示 逐个判断绘图窗口内的像素: 如何判断点与多边形的内外关系? 逐点判断法程序简单, 速度太慢,效率低! 射线法 3.9 多边形填充区 分割凹多边形:向量方法 E5 3 E1 E2 E3 E4 E6 0 1 2 3 1 2 E1 ╳ E2=(0,0,1) E2 ╳ E3=(0,0,-2)z0 E3 ╳ E4=(0,0,2) E4 ╳ E5=(0,0,6) E5 ╳ E6=(0,0,6) E6 ╳ E1=(0,0,2) E1= (1,0,0) E2= (1,1,0) E3= (1,-1,0) E4= (0,2,0) E5= (-3,0,0) E6= (0,-2,0) 延长E2分割多边形

文档评论(0)

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

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

1亿VIP精品文档

相关文档