哈尔滨工业大学计算机学院唐好选.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文档。上传文档
查看更多
基本图形生成算法 图元扫描转换 直线段扫描转换 圆弧扫描转换 实区域填充 图形反走样技术 光栅图形中点的表示 光栅图形中点的表示 光栅图形中点的表示 图形显示的几种方式 图形显示前需要:扫描转换+裁剪 裁剪→扫描转换:最常用,节约计算时间 扫描转换→裁剪:算法简单 直线段扫描转换 假设 像素间均匀网格,整型坐标系,直线段斜率0m1 对m>1,x、y互换 直线段的扫描转换算法 直线的扫描转换 确定最佳逼近于该直线的一组象素 按扫描线顺序,对这些象素进行写操作 三个常用算法: - 数值微分法(DDA) - 中点画线法 - Bresenham算法 数值微分(DDA)法(1/5) 已知线段端点:P0(x0,y0), P1(x1,y1) 直线方程 y=kx+b, {(xi, yi)}, i=0,….n. 浮点数取整 : yi=round(yi)=(int)(yi+0.5) 用到浮点数的乘法、加法和取整运算 数值微分(DDA)法(2/5) 增量算法 yi+1=kxi+1+b=k(xi+1)+b=yi+k (xi,yi)→(xi+1,yi+k) 缺点: 有浮点数取整运算 不利于硬件实现 效率低 仅适用于?k? ≤1的情形:x每增加1,y最多增加1。当 ?k? ?1时,必须把x,y互换。 数值微分(DDA)法(3/5) digital differential analyzer 基本思想 用数值方法解微分方程 dx/dt = ?x dy/dt = ?y xn+1 = xn + ??x yn+1 = yn + ??y 数值微分(DDA)法(4/5) 简单的DDA 取?= 1/max(|?x |,|?y|) 使 ?|?x |, ?|?y|中必有一个是单位步长 ?x为最大时, ??x =1, ??y =k ?y为最大时, ??y =1, ??x =1/k 数值微分(DDA)法(5/5) 缺点: 浮点数运算 不易硬件实现 数值微分(DDA)法 void DDALine(int x0,int y0,int x1,int y1,int color) ? int x; float dx, dy, y, k; dx = x1-x0; dy=y1-y0; k=dy/dx ; y=y0; for (x=x0; x?x1; x++) ? drawpixel (x, int(y+0.5), color); y=y+k; ? ? 中点画线法(1/4) 问题:判断距离理想直线最近的下一个象素点 已知:线段两端点(x0,y0),(x1,y1) 直线方程:F(x,y)=ax+by+c=0 a=y0-y1 b=x1-x0 c=x0y1-x1y0 中点画线法(2/4) 直线上方点:F(x,y)>0;直线下方点:F(x,y)<0 构造判别式: d=F(M)=F(Xp+1,Yp+0.5) 由d>0,d<0可判定下一个象素 分两种情形考虑再下一个象素的判定: 若d≥0,中点M在直线上方,取正右方象素P1 (Xp+1,Yp) 再下一个象素的判别式为: d1=F((Xp+1)+1,Yp+0.5)=a(Xp+2)+b(Yp+0.5)+c = d + a d的增量为a 若d<0,中点M在直线下方,取右上方象素P2 (Xp+1,Yp+1) 再下一个象素的判别式为: d2=F((Xp+1)+1,(Yp+1)+0.5)= a(Xp+2)+b(Yp+1.5)+c =d + a+b d的增量为a+b 中点画线法(4/4) d的初始值 d0=F(X0+1,Y0+0.5) =F(X0,Y0)+a+0.5b =a+0.5b 用2d代替d后,d0=2a+b=a+a+b d的增量都是整数 优点: 只有整数运算,不含乘除法 可用硬件实现 About Bresenham E.Jack Bresenham Professor of Computer Science Ph.D., Stanford University, 1964 MSIE, Stanford University, 1960 BSEE, University of New Mexico, 1959 Retired from 27 years service at IBM as a Senior Technical Staff Member in 1987. Have t

文档评论(0)

精品文档专区 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档