计算机图形学03二维图形生成ppt课件.pptx

计算机图形学03二维图形生成ppt课件.pptx

ID:59485698

大小:3.09 MB

页数:65页

时间:2020-09-13

计算机图形学03二维图形生成ppt课件.pptx_第1页
计算机图形学03二维图形生成ppt课件.pptx_第2页
计算机图形学03二维图形生成ppt课件.pptx_第3页
计算机图形学03二维图形生成ppt课件.pptx_第4页
计算机图形学03二维图形生成ppt课件.pptx_第5页
资源描述:

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

1、第3讲:二维图形生成图元primitive任何复杂的图形通常被看作是由一些基本图形元素(图元)构成的。基本二维图元包括点、直线、圆弧、多边形、字体符号和位图等,它们的显示问题是任何复杂二维图形及图像显示技术的基础。三维图形的显示最终也是通过投影转化成二维图形的显示。图元通常是指不可再分的独立的图形实体。基本图元显示问题就是根据基本图元的描述信息来生成像素组合。§3.1直线生成算法图元的描述除了含有坐标信息外,还描述了图元的一些属性信息,比如线宽、线型、颜色、填充图案等图元的属性第3章:二维图形生成1直线生成算法2圆弧绘制算法

2、3区域填充4字符5反走样技术曲线和各种复杂的图形均是离散成许多直线段来绘制,因而直线是二维图形生成技术的基础。理论上认为,根据直线的数学方程算出直线上的一个个点即可,但这样做运算效率不高。常见算法:1数值微分法2逐点比较法3中点画线法4Bresenham算法§3.1直线生成算法数值微分法(DDA法)是根据直线的微分方程来画直线的,它是最简单的一种画线方法。设直线的起点坐标是Ps(xs,ys),终点坐标为Pe(xe,ye),令Δx=xe-xs,Δy=ye-ys,则要绘制的直线的微分方程为对上面的式子用中的微商用差商来代替,即得

3、令Δm=max(

4、Δx

5、,

6、Δy

7、),取时间步长t2-t1=1/Δm,则对每一步,可得上述微分方程数值解的递推公式为xi+1=xi+Δx/Δm,yi+1=yi+Δy/Δm1数值微分法按照直线的斜率k=Δx/Δy可分两种情况来分析:

8、k

9、>1时,y方向为计长方向,这时Δm=

10、Δy

11、,增加或减少的步长Δy/Δm始终为1个单位。x方向的变化步长为Δx/Δm。

12、k

13、≤1时,x方向为计长方向。这时Δm=

14、Δx

15、,x方向的变化量Δx/Δm为1个单位,y方向的变化步长则为Δy/Δm。1数值微分法1a2a3a4a1b2b3b4b1Δy/Δm

16、Δx/Δm1DDA算法程序voidLineDDA(intx1,inty1,intx2,inty2,intcolor){intdm=0;if(abs(x2-x1)>=abs(y2-y1)//abs是求绝对值的函数dm=abs(x2-x1);//x为计长方向elsedm=abs(y2-y1);//y为计长方向floatdx=(float)(x2-x1)/dm;//当x为计长方向时,dx的值为1floatdy=(float)(y2-y1)/dm;//当y为计长方向时,dy的值为1floatx=x1+0.5;floaty=y1+0.

17、5;for(inti=0;i

18、1离直线近,取P1。M与Q重合,P1、P2任取一点。问题转换为如何判断M与Q点的关系。4中值画线法中值画线算法假设直线方程为F(x,y)=ax+by+c=0其中a=y0-y1,b=x0-x1,c=x0y1-x1y0.则由数学知识可知有下面的关系:F(x,y)=0,点在直线上,F(x,y)>0,点在直线上方,F(x,y)<0,点在直线下方。所以,欲判断M点在Q点上方还是在Q点下方,只需要把中点M代入F(x,y),并检查它的符号。构造判别式:d=F(M)=F(xp+1,yp+0.5)=a(xp+1)+b(yp+0.5)+c当

19、d<0,M在直线(Q)下方,取右上方P2;当d≥0,M在直线(Q)上方,取右方P1。中值画线算法2.判别式的增量算法当d≥0,此时取P1,新的判别式为(将xp+1代入xp)d1=F(xp+2,yp+0.5)=a(xp+2)+b(yp+0.5)+c=a(xp+1)+b(yp+0.5)+c+a=d+a增量为a;若d<0,此时取P2,新的判别式为(将yp+1代入yp)d2=F(xp+2,yp+1.5)=a(xp+2)+b(yp+1.5)+c=a(xp+1)+b(yp+0.5)+c+a+b=d+a+b增量为a+b。中值画线算法3.判

20、别式的初始值画线从(x0,y0)开始,d的初值d0=F(x0+1,y0+0.5)=a(x0+1)+b(y0+0.5)+c=F(x0,y0)+a+0.5b=a+0.5b由于只用d的符号作判断,为了只包含整数运算,可以用2d代替d来摆脱小数,提高效率。4.其它斜率情形用同样的推导过程,不难得出

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

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

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