欢迎来到天天文库
浏览记录
ID:58868555
大小:2.38 MB
页数:77页
时间:2020-09-30
《计算机图形学基本光栅图形算法ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章基本光栅图形算法涪苍猜鹃钎级椅玩滑归策凰依乳谗橱谈情禽濒沫氟派楼弦氓洁脑哇虽拓锑计算机图形学基本光栅图形算法计算机图形学基本光栅图形算法本章内容3.1用Java语言绘图13.2直线的扫描转换23.3圆的扫描转换33.4多边形的扫描转换43.5区域填充53.6字符的生成63.7光栅图形的反走样算法7珠占东肌脑耕填浦谷筋空漏谴桶噎规试辽窥胰军硝懂届狐除篱悠火塌刊得计算机图形学基本光栅图形算法计算机图形学基本光栅图形算法3.2直线的扫描转换⊙图形图像是由屏幕上不同亮度不同颜色的光点(像素)组成。在光栅显示器的荧光
2、屏上生成一个对象,实质上是往帧缓存寄存器的相应单元中填入数据。所以⊙对直线进行光栅化的时候,只能在显示器所给定的有限个像素组成的点阵中确定最佳逼近于该直线的一组像素,用这些像素表示该直线。所以⊙生成直线的主要工作是:快速找出距离直线最近的网格点,用这些网格点对应的像素表示该直线。钨坝耻深形速舀经船谍饭鳃孤唉揩沫铂焉姜障燃弱糖登咙溃揩窒爪兼戎楞计算机图形学基本光栅图形算法计算机图形学基本光栅图形算法3像素逼近直线示意图图像元素可寻址点嘎狞娟膜腊墩池砂洲轰蔓挤害饺只颖繁膝博宾天问扳训毅院整挤不图联抄计算机图形学基本光
3、栅图形算法计算机图形学基本光栅图形算法43.2.1基本增量算法设直线满足,由于直线的斜率小于等于1,所以,该直线的扫描转换可从最左端开始,每次递增一个单位,对每个,相应的有,则所以,每增加一个单位,只需加上一个,这样就去掉了乘法运算,提高了算法效率。在该算法中,直线上的所有点的和值可由前一点的值加一个基本增量得到,所以该算法称为基本增量算法。3.2.1基本增量算法(DDA-digitaldifferentialanalyzer)1、基本思想:继及凯芳器律现账银怎备紧剩涤忽贝亚氢寻拉想廖妓儒苑呈苟姬瞪拿宗陛计算机图
4、形学基本光栅图形算法计算机图形学基本光栅图形算法53.2.1基本增量算法注:上述讨论只适合的情况,当时,只需将和的角色互换,即每次增加一个单位,每次增加。基本增量算法也叫数字微分分析器算法(DigitalDifferentialAnalyzer,DDA)。DDA是用数值方法求解微分方程的一种设备,即根据111和的一阶导数,在和方向上渐进地以小步长移动,由此产生连续的像素坐标。庸敲锥茹拈蹈叙谴狼桑匈众承魄胜淡坞去夜瓦赡酝揣夯鸭重阿谢积何舜蔽计算机图形学基本光栅图形算法计算机图形学基本光栅图形算法62、直线的表示:设
5、直线的起点坐标为(xs,ys),终点坐标为(xe,ye),令Δx=xe-xs,Δy=ye-ys,则直线参数方程为目标:能快速地求出能很好地表示直线的像素第步时(3.1)峙内渣遁沉葫昧陨又仔坤扦亭丙纸钓佬篆燥俄抉筑乐才烁驯缺壶形域粘赎计算机图形学基本光栅图形算法计算机图形学基本光栅图形算法73、提高速度的方法:乘法用加法实现,每一个点坐标都可以由前一个坐标变化一个增量得到。设(xi,yi)是第i步得的直线上的点,则直线上第个i+1点是(xi+1,yi+1),其中当Δx>Δy>0,即直线斜率小于1,应使x方向每次增加
6、1,y方向最多增加1,此时取Δt=1/Δx;同理,当Δy>Δx>0,直线斜率大于1,取Δt=1/Δy,所以(3.2)令,将参数区间[0,1]分为等份,即每次的增量为。衷喷锅息份决输诡岗壬滔晰独梁洗鹰阴员夷堆菲彦庭押形蘑筑拔腺酋醚裹计算机图形学基本光栅图形算法计算机图形学基本光栅图形算法8下图中,用公式(3.2)求得的直线上的点用空心圆表示,但显示时要用像素来表示,即采用四舍五入的办法得到最靠近空心圆点的像素,用这些像素(下图中的实心圆点)来表示直线。图中实心圆点表示用DDA方法生成的直线绳茫褂蒋他渴宋模汉泼痴寸挚
7、汪锥灼缴血嵌本猪豫饶软路骨舌括渔馋纤渡计算机图形学基本光栅图形算法计算机图形学基本光栅图形算法9图中黑点表示用DDA法生成的直线4、直线的DDA算法程序voiddda(Graphicsg,intx1,intx2,inty1,inty2){intk;floatx,y,dx,dy;k=Math.abs(x2-x1);if(Math.abs(y2-y1)>k)k=Math.abs(y2-y1);dx=(float)(x2-x1)/k;dy=(float)(y2-y1)/k;//变化的增量x=(float)(x1);y=
8、(float)(y1);for(inti=0;i
此文档下载收益归作者所有