计算机图形学扫描转换ppt课件.ppt

计算机图形学扫描转换ppt课件.ppt

ID:59268239

大小:1012.00 KB

页数:59页

时间:2020-09-27

计算机图形学扫描转换ppt课件.ppt_第1页
计算机图形学扫描转换ppt课件.ppt_第2页
计算机图形学扫描转换ppt课件.ppt_第3页
计算机图形学扫描转换ppt课件.ppt_第4页
计算机图形学扫描转换ppt课件.ppt_第5页
资源描述:

《计算机图形学扫描转换ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章扫描转换鲁萍扫描转换4.1直线段的扫描转换4.2圆弧的扫描转换4.3多边形的扫描转换与区域填充4.4字符4.6反走样4.7OpenGL程序设计直线段扫描转换假设像素间均匀网格,整型坐标系,直线段斜率0

2、,但效率太低,因为每一步需要一次浮点乘法和一次舍入运算。栅格交点表示象素点位置。。。。(X0,Y0)(X1,Y1)(Xi+1,Int(Yi+1+0.5))(Xi,Yi)数值微分(DDA)法(2/5)计算yi+1=kxi+1+b=kxi+b+kx=yi+kx当x=1;yi+1=yi+k当x每递增1,y递增k(即直线斜率),y最多增加1增量算法:在一个迭代算法中,如果每一步的x、y值是用前一步的值加上一个增量来获得,则称为增量算法。DDA算法就是一个增量算法。(Xi,Yi)栅格交点表示象素点位置。。。。(

3、X0,Y0)(X1,Y1)(Xi,Int(Yi+0.5))(Xi+1,Yi+k)数值微分(DDA)法(3/5)/*算法2.1*/voidDDALine(intx0,inty0,intx1,inty1,intcolor)intx;floatdx,dy,y,k;dx,=x1-x0,dy=y1-y0;k=dy/dx,y=y0;for(x=x0;x<=x1;x++)drawpixel(x,int(y+0.5),color);y=y+k;数值微分(DDA)法(4/5)例2.1:画直线段P0(0,0)--P1(

4、5,2)xint(y+0.5)y+0.5000+0.5100.4+0.5210.8+0.5311.2+0.5421.6+0.5522.0+0.5012345321Line:P0(0,0)--P1(5,2)中点画线法(1/6)原理:假定直线斜率0P2离直线更近更近—>取P2。M在Q的上方—>P1离直线更近更近—>取P1M与Q重合,P1、P2任取一点。问题:

5、如何判断M与Q点的关系?P=(xp,yp)QP2P1M中点画线法(2/6)问题:判断距离理想直线最近的下一个象素点已知:线段两端点(x0,y0),(x1,y1)直线方程:F(x,y)=ax+by+c=0a=y0-y1b=x1-x0c=x0y1-x1y0P=(xp,yp)QP2P1M如何判断M点在Q点上方还是下方?把M代入F(x,y),并检查其符号中点画线法(3/6)构造判别式:M(xp+1,yp+0.5)d=F(M)=F(xp+1,yp+0.5)=a(xp+1)+b(yp+0.5)+cP=(xp,yp)QP

6、2P1M=F(xp,yp)+a+0.5b=a+0.5bd>0,M在直线(Q点)上方,取右方P1;d<0,………………..下方,取右上方P2;d=0,选P1或P2均可,约定取P1;能否采用增量算法呢?分两种情形考虑再一下个象素的判定:若d≥0,中点M在直线上方,取正右方象素P1(Xp+1,Yp)再下一个象素的判别式为M(xp+2,yp+0.5):d’=F((Xp+1)+1,Yp+0.5)=a(Xp+2)+b(Yp+0.5)+c=F(Xp,Yp)+a+0.5b+a=d+ad的增量为a若d<0,中点M在直线下方,

7、取右上方象素P2(Xp+1,Yp+1)再下一个象素的判别式为M(xp+2,yp+1.5):d’’=F((Xp+1)+1,(Yp+1)+0.5)=a(Xp+2)+b(Yp+1.5)+c=F(Xp,Yp)+a+0.5b+a+b=d+a+bd的增量为a+bMP1P2MP1P2中点画线法(4/6)中点画线法(7/7)例2.2:画直线段P0(0,0)--P1(5,2)a=y0-y1=-2,b=x1-x0=5,d=a+0.5b=0.5d1=a=-2,d2=a+b=3xyd000.510-1.5211.531-0.542

8、2.5012345321Line:P0(0,0)--P1(5,2)if(d<0){x++;y++;d+=d2;}else{x++;d+=d1;}d的初始值d0=F(X0+1,Y0+0.5)=F(X0,Y0)+a+0.5=a+0.5b用2d代替d后,d0=2a+bd的增量都是整数优点:只有整数运算,不含乘除法可用硬件实现因(X0,Y0)在直线上,所以F(X0,Y0)=0中点画线法(5/6)中点画线法(6/6)/*算

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。