网站大量收购闲置独家精品文档,联系QQ:2885784924

d图形-变换.pptVIP

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

第二章、二维图形 2.1 坐标体系 2.2 窗口与视区 2.3 剪取 2.4 几何变换 2.5 直线的生成 2.6 圆的生成 2.7 多边形填充 窗口:在WC中定义一个矩形区域,该区域内的对象将予以显示。 视区:在VC(观察坐标系)中定义一个矩形区域,所有在窗口内的对象都将显示在该区域中。 第二章 60 二维图形 2.3 直线的生成 一、概 述 二、DDA直线生成算法 三、对称DDA直线生成算法 四、Bresenham直线生成算法 概 述 概 述 第二章 61 在计算机产生的图形中,用到大量的直线,画好直线是非常有意义的,其一般的准则是: 线条应该显得笔直:由连续点组成的直线要显示在离散网格的平面上,一定会有不经过网格的点,如左下图。在这种情况下,必须选择靠近直线的网格点来逼近这条直线。若选择的好,线就显得较直;否则就会较弯曲,如右下图。 概 述 概 述 第二章 62 直线端点位置应该准确:画出的线段如果不准确,往往会使两条线之间不能很好的镶接,如右图。 直线浓度应该均匀:线段的浓度与单位线段中所显示的点数成正比。要保持线段的浓度均匀端点应该等距分布。只有宇宙平行和成45°的线才能做到。 第二章 63 概 述 概 述 直线浓度应该与线段的长度和斜率无关: 要取得均匀的线段浓度,应该保持每单位长度的点数是个常数。一般,采用线段的近似长度,以及生成直线的算法,使在线段近似长度范围内保持线段浓度均匀。 显示线段的速度应快: 生成直线可用软件和硬件来实现,一般情况下,硬件要比软件实现得快。 第二章 64 二维图形 2.3 直线的生成 一、概 述 二、DDA直线生成算法 三、对称DDA直线生成算法 四、Bresenham直线生成算法 DDA直线生成算法原理 直线的微分方程表示为: dx/dy = △x/△y 设直线的斜率小于等于1, 起点坐标为(xa,ya), 终点坐标为(xb,yb), 则方程求解步骤分为: x0= xa +0.5,xn=xn-1+1 y0= ya +0.5,yn=yn-1+△y/△x 其中:△x=xb -xa,y=yb-ya 上述解表示x方向积分步长为1, y方向增量为△y/△x。 DDA直线生成算法 第二章 65 y x yn yn-1 xn-1 xn △y/△x DDA直线生成算法原理 由于屏幕上的坐标为整数坐标,则真正作为输出显示为: y输出=trunc(yn),其中函数trunc()是指舍尾的正数。 因此y输出和yn 之间的量化误差最大为1。 为了改善这方面的误差, 使y0的初值增加0.5, 使量化误差在(-0.5,0.5)范围之间。 同理,若直线斜率大于1, 则上述方程的求解步骤可分为: x0=xa+0.5,xn=xn-1+△x/△y, y0=ya+0.5,yn=yn-1+1, 其中△x,△y意义同上。 上述解表示y方向积分步长为1, x方向增量为△x/△y,其他同上。 DDA直线生成算法 第二章 65 y x yn yn-1 xn-1 xn △y/△x DDA直线生成算法描述 if |xb-xa|≤|yb-ya| then 计算直线在y方向上的增量:length=|yb-ya| else 计算直线在x方向上的增量:length=|xb-xa| 计算x方向的单位增量:dx=(xb-xa)/length 计算y方向的单位增量:dy=(yb-ya)/length 置初值:x=xa+0.5,y=ya+0.5 for i=1 to length do begin 输出点(trunc(x), trunc(y)) 计算下一个点坐标 x=x+dx,y=y+dy end end of algorithm DDA直线生成算法 第二章 66 DDA直线生成算法小结 优点:在同一坐标上,不可能 连续停留两次。 缺点:在本算法中,开始需要执行一个除法△y/△x 或 △x/△y来确定增量,这样用硬件来实现比较复杂和昂贵,用软件实现相对容易些,但效率较低。 DDA直线生成算法 第二章 67 第二章 68 二维图形 2.3 直线的生成 一、概 述 二、DDA直线生成算法 三、对称DDA直线生成算法 四、Bresenham直线生成算法 第二章 69 对称DDA直线生成算法 对称DDA直线生成算法 对称DDA直线生成算法是在DDA算法的基础上,引入N变量, 直线方程表示为:dx/dn=△x/△N, dy/dn=△y/△N 其解为:x0=xa+0.5 xn=xn-1+△x/△N 其中 △x=xb-xa, ? y0=ya+0.5 yn=yn-1+△y/△N △y=yb-ya

文档评论(0)

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

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

1亿VIP精品文档

相关文档