能源动力CAD复习解剖.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
能源动力CAD复习 直线的DDA显示算法 数值微分法DDA 直线中的每一点坐标都可以由前一点坐标变化一个增量(△x,△y)而得到,可表示为迭代式xi+1=xi+△x, yi+1=yi+△y,并且有关系△y=k△x,迭代式的初值为直线的起点(x0,y0)。 已知过端点P0(x0,y0),P1(x1,y1)的直线段,直线斜率为k=(y1-y0)/(x1-x0),画线过程从x的左端点x0开始,向x右端点步进,步长为1个象素,计算相应的y坐标y=kx+b, 计算yi+1=kxi+1+b=(kxi+b)+k△x=yi+k△x 当△x=1时,yi+1=yi+k.由此可以写出画线程序如P22-23. 中点画线法 假定直线斜率在0-1之间。一个象素点P(xp,yp)的下一点有两种可选择点P1(xp+1,yp)或P2(xp+1,yp+1)如图2-8.若M=(xp+1,yp+0.5),即M为P1、P2之中点,Q为理想直线与x=xp+1垂线的交点。当M在Q的下方,则P2应为下一个象素点;M在Q的上方,应取P1为下一点。 这就是中点画线法的基本原理。 Bresanham算法 Bresenham算法 类似于中点法,由误差项符号决定下一个象素取右边点还是右上点。 对于小数算法可以改用整数以避免除法。 上述三种算法的基本原理是:过各行各列象素中心构造一组虚拟网格线。按直线从终点的顺序计算理想直线与各垂直网格线的交点,然后确定该列象素中与此交点最近的象素。它们之间的差别在于确定最近象素点的实现方法不同:DDA使用交点坐标加0.5后取整来实现四舍五入。进而得到与此交点最近的象素点,此方法的弊端是要进行取整运算,不利于硬件的实现。中点画线法通过构造判别式,来判断与交点相邻两象素的中点是在理想直线上面还是下面,如果此中点在理想直线上方则表示下方象素点离交点较近。Bresenham算法才采用增量计算方法,通过误差项d与0.5的大小关系来确定交点较近的象素点:误差项d大于0.5,则上面的象素离交点较近。 中点画圆法 构造圆函数F(x,y)=x2+y2-R2.对于圆上的点,F(x,y)=0;对于圆外的点F(x,y)0;对于圆内的点F(x,y)0。与中点画线法一样,对一象素点P(xp,yp)及P1P2之中点M,可以构造判别式: d=F(M)=F(xp+1,yp-0.5) =(xp+1)2+(yp-0.5)2-R2。 若d0,则应取P1为下一个象素,而且再下面一个象素的判别式为d=F(xp+2,yp-0.5) =(xp+2)2+(yp-0.5)2-R2=d+2xp+3 若d≥0,则应取p2为下一象素,而且下一象素的判别式为d=F(xp+2,yp-1.5) =(xp+2)2+(yp-1.5)2-R2=d+2(xp-yp)+5 这里讨论的是按顺时针方向生成第二个八分圆,第一个象素是(0,R),判别式d的初始值d0=F(xp+1,yp-0.5)=F(1,R-0.5)=1.25-R 实现 MidPointCircle(int r, int color) { int x, y; float d; x=0; y=r; d=1.25-r; circlepoints(x,y,color); while(x=y) { if (d0) d+=2*x+3; else {d+=2*(x-y)+5; y--;} x++; circlepoints(x,y,color); } } 为了进一步提高算法的效率,可以将上面算法中的浮点数改写成整型数,将乘法运算改成加法运算,即仅用整数实现中点画圆。 图形的几何变换 对点的位置变换通常采用矩阵运算来实现。二维线性变换的一般形式可以写成如下: x’=a1x+b1y+c1 y’=a2x+b2y+c2 这可以写成矩阵形式: 这种用三维向量表示二维向量的方法称为齐次坐标法。在二维图形处理中,齐次坐标解决了平移的问题,在三维图形处理中解决了平移和透视问题。这样就可以统一变为: 二维基本变换 这个矩阵每个元素都有特殊含义,子矩阵 可以对图形进行缩放、旋转、对称、错切等变换;子矩阵 是对图形进行平移变换;子矩阵 是对图形做投影变换;子矩阵 则是对图形整体进行缩放变换,i1图形等比例缩小,0i1图形等比例放大。 平移变换矩阵 2. 旋转变换 矩阵形式为 写成齐次坐标为则

文档评论(0)

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

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

1亿VIP精品文档

相关文档