计算机图形学03:基本图形生成算法ppt课件.ppt

计算机图形学03:基本图形生成算法ppt课件.ppt

ID:59268249

大小:4.26 MB

页数:62页

时间:2020-09-27

计算机图形学03:基本图形生成算法ppt课件.ppt_第1页
计算机图形学03:基本图形生成算法ppt课件.ppt_第2页
计算机图形学03:基本图形生成算法ppt课件.ppt_第3页
计算机图形学03:基本图形生成算法ppt课件.ppt_第4页
计算机图形学03:基本图形生成算法ppt课件.ppt_第5页
资源描述:

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

1、第3讲:基本图形生成算法第三章:基本图形生成算法直线生成圆的生成线宽与线型实区域填充图形反走样§光栅图形中点的表示(x1,y1)1直线的生成直线的斜率截距m表示斜率,b是y轴的截距xby0k·x(x2,y2)2直线的生成数值微分法DigitalDifferencetialAnalyzer(xi,yi)(xi,(int)(yi+0.5))(xi+1,(int)(yi+0.5))(xi+1,yi)1直线的生成数值微分法给定x的增量△x计算y的增量△y=m·△x如果△x=±1,则△y=±m如果

2、m

3、<1,设上一点为(xi,yi)随后一点为(xi+1,yi+1)则xi+1=xi±1,yi+1=y

4、i±m。2直线的生成数值微分法voidDDALine(intx1,inty1,intx2,inty2,intcolor){floatm,y=y1;m=(float)(y2-y1)/(x2-x1);for(intx=x1;x<=x2;x++){putpixel(x,(int)(y+0.5f),color);y+=m;}}//[注](int)(y+0.5)是为了四舍五入。1直线的生成中点画线法MidPointP=(xp,yp)MP1P2Q中点画线法设P1(xp+1,yp),P2(xp+1,yp+1)M为P1和P2的中点M=(xp+1,yp+0.5)设直线方程为:F(x,y)=ax+by+c=0

5、判别式:d=F(M)=F(xp+1,yp+0.5)=a(xp+1)+b(yp+0.5)+c1)如果d<0时,M在直线下方,取P2;2)如果d>0时,应取正右方的P1。3)当d=0时,可随便取,约定取正右方的P1。采用增量算法:d0=a+0.5b初始值如d≥0,d1=d+a增量为a如d<0,d2=d+a+b增量为a+bvoidMPLine(intx1,inty1,intx2,inty2,intcolor){inta=y1–y2;intb=x2–x1;intx=x1;inty=y1;intd=2*a+b;intd1=2*a;intd2=2*(a+b);putpixel(x,y,color);f

6、or(x=x1;x<=x2;x++){if(d<0){y++;d+=d2;}else{d+=d1;}putpixel(x,y,color);}}1直线的生成Bresenham画线算法xmd2xm+1ym+1d1ym1直线的生成Bresenham画线算法基本思想比较从理想直线到位于直线上方的像素的距离d1和相邻的位于直线下方的像素的距离d2根据距离误差项的符号确定与理想直线最近的象素八分之一圆域内直线画法1直线的生成(x,y)(y,x)(-x,y)(-y,x)(-y,-x)(-x,-y)(x,-y)(y,-x)1直线的生成Bresenham画线算法d1=y-ym=(m(xm+1)+b)-y

7、md2=(ym+1)-y=ym+1-(m(xk+1)+b)则:d1-d2=2m(xm+1)-2ym+2ym+2b-1dm=△x(d1-d2)=2△y·xm-2△x·ym+cdm+1=dm+2△yd0=2△y-△x当x递增时,如果dm+1>0时,y就增1,然后重新计算d:dm+1=dm-2△x1直线的生成Bresenham画线算法(递推法)根据数值微分的增量算法:设dx=x2-x1;dy=y2-y1;m=dy/dx;x=x1;y=y1;dm=0;for(i=0;i=0.5){y+=1;dm=dm-1;}}然后将m扩大2*dx倍,再偏移-d

8、x,即k=2*dy-dx,这样就可得到Brensenham算法。1直线的生成Bresenham画线算法(递推法)voidBHLine(intx1,inty1,intx2,inty2,intcolor){intx,y,dx,dy,dm;dx=x2-x1;dy=y2-y1;dm=2*dy-dx;y=y1;for(x=x1;x<=x2;x++){putpixel(x,y,color);dm=dm+2*dy;if(dm>=0){y++;dm=dm–2*dx;}}}1直线的生成Bresenham直线算法的巧妙之处在于:1.采用增量算法,减少运算量2.采用整数算法,提高运算效率1.圆的特性圆的方程表

9、达式:参数极指标方程:为了简化起见,先考虑中心在原点情况。2圆的生成2.圆的对称性2圆的生成(x,y)(y,x)(-x,y)(-y,x)(-y,-x)(-x,-y)(x,-y)(y,-x)3.中点画圆法构造函数:F(x,y)=x2+y2-r2圆外的点F(x,y)>0;圆内的点F(x,y)<0;判别式:dp=F(M)=F(xp+1,yp-0.5)=(xp+1)2+(yp-0.5)2-r2若dp<0取P1为下一个像素dp

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

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

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