计算机图形学基础课程设计

计算机图形学基础课程设计

ID:14398447

大小:340.79 KB

页数:14页

时间:2018-07-28

计算机图形学基础课程设计_第1页
计算机图形学基础课程设计_第2页
计算机图形学基础课程设计_第3页
计算机图形学基础课程设计_第4页
计算机图形学基础课程设计_第5页
资源描述:

《计算机图形学基础课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、计算机图形学基础课程设计1.设计要求1、给出系统框架;2、调用画点的函数,分别用DDA、中点Bresenham算法和改进Bresenham算法绘制直线和中点算法绘制直线、用不同的算法绘制圆和椭圆,并各自比较算法精度与效率的差别;3、实现二维图形的变换。(包括平移,放缩,旋转,错切以及复合变换);4、运用所学的多边形扫描算法实现多边形的扫描转换;5、运用所学的区域填充算法实现区域填充;6、运用所学算法实现线段裁剪以及多边形裁剪(多边形裁剪为可选);7、自己实现其它附加以及需要完善的功能模块;2.程序算法及原理2.1扫描转换直线段2.1.1DDA算法扫描转换直

2、线段:算法步骤:已知过端点P0(x0,y0),P1(x1,y1)的直线段L:y=kx+b,直线斜率为,这种方法直观,但效率太低,因为每一步需要一次浮点乘法和一次舍入运算。计算yi+1=kxi+1+b=kxi+b+kDx=yi+kDx当Dx=1;yi+1=yi+kl即:当x每递增1,y递增k(即直线斜率);l注意上述分析的算法仅适用于

3、k

4、≤1的情形。在这种情况下,x每增加1,y最多增加1。l当

5、k

6、>1时,必须把x,y地位互换2.1.2、中点算法扫描转换直线段:算法步骤:中点画线算法的原则是:如下图所示,但斜率K<1时,选定一个点之后,再计算中点M。如果M

7、>0,这线更靠近E点,下一点选择为E点。反之选择NE点。首先:f(x,y)=ax+by+c=0,且 y=dy/dx*x+B, so:f(x,y)=dy*x-dx*y+Bdx=0so:a=dy,b=-dx,c=Bdx.假设,已经选定P点,应用中点法则选择下一点是,我们只要计算f(x+1,y+1/2),并考察是正数还是负数。我们定义d=f(x+1,y+1/2)=a(x+1)+b(y+1/2)+c.这样,对于d>0,d<0,我们只要选择NE点和E点就可以了。这边假设选定为E点,那么中点M的位置怎么变化和d的值如何变化呢?显然M就沿着x轴递增一步。此时:d1=f(

8、x+2,y+1/2)从d1中减去d,可以得到一个增量差。d1=a=dy。同理:如果选定下一点为NE点,d2=a+b=dy-dx。基于上面的讨论,增量的中点技术可以概括为:在每一步,我们根据上一步所得到的增量的符号去选择下一个像素点。然后根据说选择的像素,判定变量增加相应的增量差d1或d2。对于初始值,我们选择第一个端点为(x0,y0)。则M为(x0+1,y+1/2).f(x0+1,y0+1/2)=f(x0,y0)+a+b/2. 故:d0=a+b/2=dy-dx/2为去掉d0中的小数,我们对d0进行放大。(在方程两边同乘于2)d0=2*dy–dxd1=2*d

9、yd2=2*(dy-dx)2.1.3、Breshenham算法扫描转换直线段:算法步骤:假定直线的起点、终点分别为:(x1,y1),(x2,y2),且都为整数。则直线方程为y=mx+b,其中b=y1-mx1,m=dy/dx,当x每递增1,y递增k(即直线斜率)取yi+1,yi由d1,d2的大小决定y=m(xi+1)+b,d1=y-yi,d2=yi+1–y,当d1-d2>0,;当d1-d2<0,;d1-d2=2y-2yi-1=2dy/dx(xi+1)+2b-2yi-1,dx(d1-d2)=2dy(xi+1)+2bdx-2yidx-dx,设pi=dx(d1-d

10、2),则pi=2xidy-2yidx+2dy+2bdx-dx(1)则pi+1=2(xi+1)dy-2yi+1dx+2dy+2bdx-dxpi+1=2dy-2(yi+1-yi)dx+pi;当pi>0时yi+1=yi+1,pi+1=2dy-2dx+pi当pi<0时yi+1=yi,pi+1=2dy+pi初值p1=2x1dy-2y1dx+2dy+2bdx-dx因为y1dx=x1dy+bdx;所以p1=2x1dy-2(x1dy+bdx)+2dy+2bdx-dx=2dy-dx总结:p1=2dy-dxdx=x2-x1,dy=y2-y1当p1>0时p2=p1+2dy-2d

11、x当p1<0时p2=p1+2dy,由此得出算法。2.2扫描转换圆弧2.2.1、扫描转换生成圆算法步骤:利用圆的对称性,只须讨论1/8圆。P为当前点亮象素,那么,下一个点亮的象素可能是P1(Xp+1,Yp)或P2(Xp+1,Yp-1)。构造函数:F(X,Y)=X2+Y2-R2;则F(X,Y)=0(X,Y)在圆上;F(X,Y)<0(X,Y)在圆内;F(X,Y)>0(X,Y)在圆外。设M为P1、P2间的中点,M=(Xp+1,Yp-0.5),有如下结论:F(M)<0->M在圆内->取P1F(M)>=0->M在圆外->取P2为此,可采用如下判别式:d=F(M)=F(

12、xp+1,yp-0.5)=(xp+1)2+(yp-0.5)2-R2

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

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

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