《计算机图形学基础第五章课后习题答案(共3页).doc》由会员分享,可在线阅读,更多相关《计算机图形学基础第五章课后习题答案(共3页).doc(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上5.3 试用中点Bresenham算法画直线段的原理推导斜率在-1,0之间的直线段绘制过程(要求写清原理、误差函数、递推公式以及最终画图过程)。解:原理:每次在最大位移方向上走一步,而另一个方向是走步还是不走步取决于误差项的判别。斜率k在-1,0之间x为最大位移方向,每次在x加1,而y或减1或减0。设直线段的方程F(x,y)=y-kx-b,假设当前点是P(xi,yi),则下一点在Pu(xi+1,yi)与Pd(xi+1,yi-1)中选一。设M为Pu和Pd的中点,则M点的坐标为(xi+1,yi-0.5)。构造误差判别式:di=F(xM,yM)=F(xi+1,yi-0.5)
2、= yi-0.5-k(xi+1)-b若di0,取Pd(xi+1,yi-1);若di0,取Pu(xi+1,yi);即有xi+1=xi+1,yi+1=yi-1(di0)或yi(di0)。误差函数的递推:di0时,取Pd(xi+1,yi-1),再判断下一像素取哪个时,应计算di+1=F(xi+2,yi-1.5)= yi-1.5-k(xi+2)-b=di-1-k,增量为-1-k。di0时,取Pu(xi+1,yi),再判断下一像素取哪个时,应计算di+1=F(xi+2,yi-0.5)= yi-0.5-k(xi+2)-b=di-k,增量为-k。判别式的初值:从(x0,y0)点出发,下一个像素的选取计算d0
3、=F(x0+1,y0-0.5)= y0-0.5-k(x0+1)-b=-0.5-k取的是误差判别式的符号,因此可进行如下变换:D=d*2xx=x1-x0,根据选取的起点和绘制方向,x0,因此,D与d同号。画图过程:(1)输入两端点P0(x0,y0)和P1(x1,y1);(2)计算初始值x,y,D=-x-2y,x=x0,y=y0;(3)绘制点(x,y)。判断D的符号,若D0,则(x,y)更新为(x+1,y-1),D更新为D-2x-2y;否则(x,y)更新为(x+1,y),D更新为D-2y。(4)当xx1时,重复(3),否则结束。5.7 利用中点Bresenham画圆算法原理推导第一象限x=y到y=
4、0圆弧段的扫描转换算法(要求写清原理、误差函数、递推公式以及最终画图过程)。解:对于该圆弧段,y为最大位移方向。原理:每次沿y方向上走一步,而x方向上或减1或减0。假设当前已确定P(xi,yi),下一步在Pu(xi,yi+1)与Pd(xi-1,yi+1)中选取。设M为Pu和Pd的中点,则M点的坐标为(xi-0.5,yi+1)。构造误差判别式:di=F(xM,yM)=F(xi-0.5,yi+1)= (xi-0.5)2+(yi+1)2-R2若di0,取Pd(xi-1,yi+1);若di0,取Pu(xi,yi+1);即有yi+1=yi+1,xi+1=xi-1(di0)或xi(di0)。误差函数的递推
5、:di0时,取Pd(xi-1,yi+1),再判断下一像素时,应计算di+1=F(xi-1.5,yi+2)= (xi-1.5)2+(yi+2)2-R2=(xi-0.5)2+(yi+1)2-R2+5-2xi+2yi=di+5-2(xi-yi),增量为5-2(xi-yi)。di0时,取Pu(xi,yi+1),再判断下一像素时,应计算di+1=F(xi-0.5,yi+2)= (xi-0.5)2+(yi+2)2-R2=(xi-0.5)2+(yi+1)2-R2+3+2yi=di+3+2yi,增量为3+2yi。判别式的初值:从(R,0)点出发,计算d0=F(R-0.5,1)= (R-0.5)2+1-R2=1.25-R对于整数,判断1.25-R的符号与判断1-R的符号等价,因此取d0=1-R。画图过程:(1)输入圆的半径R;(2)计算初始值d=1-R,x=R,y=0;(3)绘制点(x,y)。判断d的符号,若d0,则(x,y)更新为(x-1,y+1),d更新为d+5-2(x-y);否则(x,y)更新为(x,y+1),d更新为d+3+2y。(4)当yx时,重复(3),否则结束。专心-专注-专业
限制150内