




免费预览已结束,剩余42页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机图形学,武汉大学电子信息学院王泉德qdwang,第二章直线,在光栅显示器的荧光屏上生成一个图形,实质上是往帧缓存寄存器的相应单元中填入数据。计算机生成图形时,需要绘制大量的直线,设计快速有效的直线绘制算法意义重大。一般来讲,水平、垂直直线和对角线能准确地画出,但要准确绘制一条斜线并不容易。在光栅显示器上画(x1,y1)到(x2,y2)的直线,实质上是确定最佳逼近直线的象素序列。,(1)生成的直线要直选择最靠近直线的象素点来逼近直线。,理想绘制效果,1、绘制直线的要求,实际绘制效果,(2)起点和终点要准确:在绘制直线的过程中由于受精度的影响,直线的终点与原终点有一个累积误差,导致直线的终点不准。,(3)直线的粗细要均匀由于选点不均匀,造成直线粗细不均匀,直观上反映出直线的亮度不均匀。,(4)直线宽度应该与线段的长度和斜率无关:要取得均匀的线段宽度,应该保持每单位长度的点数是常数。(5)显示线段的速度应快:直线的绘制是生成计算机图形的基础,其绘制速度直接影响到计算机图形生成的效率,常采用硬件来实现。,2、直线的方程,若其始坐标和终点坐标分别为:,则斜率为,截距为,(1),(2),(3),直线的绘制算法以直线方程(1)、(2)和(3)式为基础。,直线的点斜式方程为:,对任何沿直线给定的x的增量x,对应的y增量y:ymx同样,对应于y的增量y,x的增量x为:x(1/m)y,3、逐点比较法,(1)算法的基本思想:在绘制直线的过程中,每绘制一个点,就与原直线进行比较,根据比较的结果决定下一步的走向,这样一步一步逼近直线。保证要绘制的点尽可能的靠近直线而不发生远离直线的趋向。,(2)绘制思路由当前点到下一个点的走法是只在X方向或Y方向走一步。,计算当前点偏差:=tg-tg,1)=0,点在直线上;2)0,点在直线上方,下一步走X方向;3)0,点在直线下方,下一步走Y方向。,可以简化为,根据计算出偏差,然后确定下一步的走向。初始:,则=0;,第一步:,第二步:,假定起点为坐标原点偏差计算公式为:,(7,5),A,(0,0),偏差递推公式,1)时,走X方向一步,即,2)时,走Y方向一步,即,偏差计算公式为:,以上讨论的是起点为原点,X为最大步长方向的情况,对于起点是任意点,最大步长方向为其他情况下的绘制直线的偏差计算和偏差判别,可类似推导。判别终点的方法:设立计数器,计数取X或Y方向的最大增量值(计长方向),在计长方向每走一步,计数器减1,只到计数器值为零为止。,2、DDA算法(DigitalDifferentialAnalyzer),DDA算法是建立在微分方程的基础上。由到的直线段满足的微分方程为:,因此有,则有,令,有,DDA绘制的直线,1/15;,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,y=yafori=1tolengthdobegin输出点(trunc(x),trunc(y)计算下一个点坐标x=x+dx,y=y+dyendendofalgorithm,3、Bresenham算法,算法的基本思想:每次迭代在增量最大方向上走一步,另一方向上是否也走,取决于计算出来的点与直线上的点的误差,根据误差决定是否走一步。即x方向的步长总是1(斜率小于1的情况),y方向是否有变化,取决于直线的理论值与假设点之间的误差值大小。例如取X方向为最大增量方向,则有:,其中1;,绘制的直线时点的选取,偏差计算,设偏差为,当时,计算的点(实际直线上的点)在中点的上方,取当0时,计算的点(实际直线上的点)在中点的下方,取,整理后,有,yi,yi+1,偏差的递推关系,误差,因为,有,偏差初值0=m0.5,将乘以2x记为2x,则同有相同的符号,根据的符号确定象素点的过程仍然正确。此时偏差的表示式做如下变动:初始误差项:02x02y-x;积累误差k+1km修改为:k+12xk+12x(ky/x)2xk2yk2y;如果选取上面的象素点,积累误差还要减去1,修改为:k+12x(k+11)k2y2x,Bresenham直线生成算法描述,计算x和y方向的增量:dx=|xb-xa|,dy=|yb-ya|计算递推公式的初值d1:d=2dy-dx计算两个单位增量:incr1=2dy,incr2=2(dy-dx)if(xaxb)then置起点为x=xb,y=yb,置终点为xe=xa,ye=yaelse置起点为x=xa,y=ya,置终点为xe=xb,ye=yb输出起点(x,y)while(xxe)dobeginx=x+1if(d0)thend=d+incr1elsey=y+1,d=d+incr2输出点(x,y)endendofalgorithm,总结,前面所介绍的逐点比较法、数值微分法以及Bresenham算法,它们各有优缺点。因此在使用不同的图形输出设备时要选用最适合于该设备的方法,如在绘图仪中多采用逐点比较法,在点迹技术的显示设备中多用DDA法和Bresenham算法。,4、直线的属性,任何影响图元显示方法的参数称为属性参数。线段的基本属性有线型、宽度和颜色。线型:实线、虚线、点线等。,通过设置沿直线路径显示的实线线段的长度和间距来修改画线算法,产生各种类型的直线。,线宽:,线刷子:沿着生成直线时获得的象素点,移动一把具有一定宽度的“刷子”来实现。斜率k=1,刷子设置为垂直方向,否则设置为水平方向,线的连接:,一定宽度的折线段时,线段的接头处会出现缺口,典型的处理方式有:尖头,圆头和方头三种,线头:,绘制具有宽度的线段,需要对线头进行处理,典型的线头有下述三种,第三章二次曲线,圆也是图形系统中常用的元素。圆可以定义为所有以距离中心位置为给定值r的点集。圆的方程为:,利用这个方程,我们可以沿x轴,从到以单位步长计算对应的y值,从而得到圆周上每点的位置。,可以利用圆的对称性:可以先绘制八分之一圆弧,再利用对称性绘制整个圆,1、中点画圆算法,考虑圆心在原点的圆。设函数:,故有(x,y)位于圆边界内(x,y)位于圆边界上(x,y)位于圆边界外,对上述函数在每个取点步骤上,对接近圆周的两个象素点的中点进行测试来决定取点。,考虑一个四分之一圆弧,从x=0到x=y的情况(第一象限的上八分之一圆弧),圆的曲率从0变化到-1,在该段弧上的正x方向取单位步长,并确定每一步更接近圆弧的y的位置。设已经取的点为,决策参数为:,以此来判断下一步的点如何取。是还是。,故有,中点位于圆边界内中点位于圆边界上中点位于圆边界外,递推决策函数,其中的取值,决定于的符号。,中点画圆,圆弧上点的对称关系,只画1/8圆,其余点通过对称关系求得。,象限判别,在进行绘制圆弧曲线时,需要考虑轨迹点所在象限的情况,因此需要进行象限的判别。对于在坐标轴上的点,需要根据绘制圆的方向来决定。,A,B,C,D,2、Bresenham算法,仍然考虑圆心在原点的一个第一象限的圆弧。对于圆弧上的点p(x,y),其下一个可选择的点如图。,圆弧上点与该二点之间的关系,H、D全在圆外;H在圆外,D在圆内;H在圆外,D在圆上;H、D全在圆内;,可以计算出这三点到圆心的距离与半径的差:,分析:,1)当时,圆弧在D的上方,可以取的点是H或D,只要看H和D两个点,哪个与圆弧的距离近。设:,时,H点距离圆弧近,H为可取的下一个点。,表示了H和D点到圆弧的距离之差。,时,H和D点均为可取的下一个点。,时,D点距离圆弧近,D为可取的下一个点。,当,2)当时,圆弧在D的下方,可以取的点是D或V,只要看D和V两个点,哪个与圆弧的距离近。设:,时,V点距离圆弧近,V为可取的下一个点。,时,V和D点均为可取的下一个点。,时,D点距离圆弧近,D为可取的下一个点。,当,3)当时,D点在圆上,取D点。,3、多边形逼近法,考虑绘制圆心在(xc,yc),半径为r的圆,一个第一象限的圆弧。对于内接正多边形顶点Pi(xi,yi),其幅角为i,则:,下一个顶点Pi+1坐标为:,只需要计算一次sin(),cos(),就可以递推计算其他顶点,计算一个顶点只需四次乘法。,3、二次曲线参数拟合法,研究二次曲线的参数方程以及通过已知的型值点构造
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化旅游合同续签协议
- 员工保密协议及劳动合同协议
- 采购成本控制工具及供应商管理模板
- 三方服务集成协议
- 设备维修保养标准化流程卡
- 企业安全生产管理制度及应急预案
- 生态拆除项目合同
- 企业品牌推广及宣传材料模板集
- 诗经中经典诗句赏析:中国古代文学深度探究教案
- 团队任务分配与时间管理模板任务分配与时间规划工具
- 《国家电网公司电力安全工作规程(配电部分)》
- 东华临床科研数据管理系统解决方案白皮书
- GB/T 3758-2008卡套式管接头用锥密封焊接接管
- 辽宁省丹东市《教师基本素养及教育教学综合能力知识》教师教育
- 2023年全国保密知识竞赛全套复习题库及答案(共460道题)
- (推荐下载)家族性结肠息肉病教学课件
- 水生产企业(自来水公司)安全生产责任制(含安全手册)
- 《材料成型装备及自动化》课程大纲
- 临时用电JSA分析表
- 如何提高护士对患者病情掌握的知晓率
- 议论文阅读训练 (针对初一学生)附答案
评论
0/150
提交评论