- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图学理论基础-2267kb
概述 在光栅显示器的荧光屏上生成一个对象,实质上是往帧缓寄存器的相应单元中填入数据。画一条从(x1, y1)到(x2, y2)的直线,就是一个发现最佳逼近直线的象素序列,并填入色彩数据的过程。这个过程也称为直线光栅化。 直线的生成算法 直线DDA算法 直线的Bresenham算法 区域填充算法 直线DDA算法: 数值微分算法 设直线的起点为(x1,y1),终点为(x2,y2),则斜率m为: 直线中的每一点坐标都可以由前一点坐标变化一个增量(Dx, Dy)而得到,即表示为递归式: xi+1=xi+Dx yi+1=yi+Dy 并有关系:Dy = m · Dx 直线DDA算法(续) 直线不同方向的8个象限可得到各象限中直线生成时Dx, Dy的取值 直线DDA算法(续) 规律 当|dx||dy|时 |D x|=1, |D y|=m; 否则: Dx=1/m,|Dy|=1 Dx, Dy的符号与dx, dy的符号相同。 这两条规律可以导致该算法实现程序的简化。使用DDA算法,每生成一条直线做两次除法,每画线中一点做两次加法。因此,用DDA法生成直线的速度是相当快的。 直线的Bresenham算法 设直线从起点(x1, y1)到终点(x2, y2)。 直线可表示为方程y=mx+b,则b = y1 - m . x1 其中m为 直线的Bresenham算法(续) 将直线方向限于1a象限 当直线光栅化时,x每次都增加1个单元,即 xi+1=xi+1 y的相应增加应当小于1 直线的Bresenham算法(续) yi+1只可能选择两种位置之一,即yi+1=yi 或者 yi+1=yi+1 选择的原则根据y与yi及yi+1的距离d1及d2的大小而定 直线的Bresenham算法(续) 根据算式 y=m(xi+1)+b (4.2.1) d1=y-yi (4.2.2) d2=yi+1-y (4.2.3) 如果d1-d20,则yi+1=yi+1,否则yi+1=yi 最后可得到用以判断符号的误差的Pi Pi+1=Pi+2dy-2dx(yi+1-yi) 直线Bresenham算法思想(第1a象限内) 画点(x1, y2); dx=x2-x1; dy=y2-y1;计算误差初值P1=2dy-dx; i=1; 求直线的下一点位置:xi+1=xi+1; 如果 Pi0 则yi+1=yi+1;否则yi+1=yi; 画点(xi+1, yi+1); 求下一个误差Pi+1; Pi0 则Pi+1=Pi+2dy-2dx;否则Pi+1=Pi+2dy; i=i+1; idx+1则转步骤2;否则结束。 Bresenham算法的优点 Bresenham算法速度很快,并适于用硬件实现 不必计算直线的斜率,因此不做除法; 不用浮点数,只用整数; 只做整数加减法和乘2运算,而乘2运算可以用移位操作实现。 区域填充算法 区域填充即给出一个区域的边界,要求对边界范围内的所有象素单元赋予指定的颜色代码,工程制图中常用来生成剖面线。区域填充中最常用的是多边形填色。 多边形填色要解决的首要的问题,是判断一个象素是在多边形内还是外。 扫描交点的奇偶数判断法 用一根水平扫描线自左而右通过多边形而与多边形之边界相交。扫描线与边界相交奇次数后进入该多边形,相交偶次数后走出该多边形。图4-3表示出这类情况:扫描线与多边形相交四点。相交a点之后入多边形;交于b点(第2交点)之后出多边形;交于c点(第3交点)之后又入多边形;交于d点(第4交点)之后又出多边形 填色算法的分类 扫描线填色(Scan-Line Filling)算法。这类算法建立在多边形边边界的矢量形式数据之上,可用于程序填色,也可用交互填色。 种子填色(Seed Filling)算法。这类算法建立在多边形边边界的图象形式数据之上,并且还需提供多边形界内一点的坐标。 4.4 图形观察 图形观察是指将世界坐标系中的几何物体变换到输出设备平面中的像素位置,以获得所能观察到的视图。 在世界坐标系中要显示的区域称为窗口,窗口映射到显示器上的区域称为视区。 图形观察的变换过程 设备坐标 坐标系统及其变换 几何物体具有很多重要的性质,如大小、形状、位置、方向以及相互之间的空间关系等等。为了描述、分析、度量这些特性,就需要一个称为坐标系统的参考框架,坐标系统从本质上来说,它自身也是一个几何物体。 CAD系统 的坐标系 世界坐标系(world coordinate Systems),该坐标系统主要用于计算机图形场景中的所有图形对象的空间定位和定义,包括观察者的位置、视线等等。 局部坐标系(Local Coordinat
文档评论(0)