《《计算机图形学》答案 以及 算法讲解.doc》由会员分享,可在线阅读,更多相关《《计算机图形学》答案 以及 算法讲解.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流计算机图形学答案 以及 算法讲解【精品文档】第 8 页(-)DDA:例: 设p0(x0=1, y0=1),pp(xp=6,yp=3),由p0到pp画一直线.解: dy=yp-y0=3-1=2 dx=xp-x0=6-1=5 k= D y/ D x=2/5=0.4 (ROUND(k)1 1/k=2/3=0.67 让y每次增加1 (dydx) y1=y0+1=1+1=2 x1=x0+1/k=1+0.67=1.67 round(1.67)=2 y2=y1+1=2+1=3 x2=x1+1/k=1.67+0.67=2.34 round(2.34)=2 y3=y2+1
2、=3+1=4 x3=x2+1/k=2.34+0.67=3.01 round(3.01)=3 y1234x1223DDA算法:复杂度:加法+取整优点 避免了y=kx+b 方程中的浮点乘法,比直接用 点斜式画线快缺点 需浮点数加法及取整运算,不利于硬件实现.(2)中点画线算法:目标:消除DDA算法中的浮点运算(浮点数取整运算,不利于硬件实现; DDA算法,效率低)中点算法: 用整数加法及比较代替了DDA中的浮点数加法及取整运算,效率大大提高.设(x0,y0)和(x1,y1)分别为直线的两端点 Dy=y1-y0, Dx=x1-x0由 y=kx+B 及 k= Dy/ Dx k0,1得 y=(Dy/ D
3、x).x+B -Dy.x+Dxy-Dx.B=0则直线一般方程为 F(x,y)=-Dy.x+ Dx.y-B. Dx=0 a= -Dy b= Dx c= -B.Dx设 (x,y) 为直线上一点,将点P=(x,y+ m)代入直线 方程:F(x,y+ m)= -Dy.x+Dx.(y+ m)-B. Dx = (-Dy.x+Dx.y-B. Dx)+Dx.m =F(x,y)+Dx.m = +Dx. m因为Dx0if m 0(即P点在直线上方) then F(x,y+yb)0; if m0 (即P点在直线下方) then F(x,y+yb)0; ph(x=5,y=6)F3=(xp,2)=-3*5+4*2-1=
4、-80; pl(x=5,y=2)例: 设p0(x0=0, y0=0),pp(xp=5,yp=2),由p0到pp画一直线.解: dy=2 dx=5 k=2/50因为 d00 M在理想直线上方,所以下一点选取正右方E点p1=(1,0)dnew= dold-2dy = d0-2dy=1-2*2=-30) 所以下一点选取右上方NE点 p2=(2,1)dnew= dold-2(dy-dx) = -3-2*(2-5)=+3 (dold0) 所以下一点选取正右方E点 p3=(3,1)dnew= dold-2dy = +3-2*2=-10) 所以下一点选取右上方NE点 p4=(4,2) dnew= dold-
5、2(dy-dx) =- 1-2*(2-5)=5 (dold0) 所以下一点选取正右方E点 p5=(5,2)clear;x0=0;y0=0;x1=5;y1=2dy=y1-y0;dx=x1-x0;d0=-2*dy+dx;incE=2*dy;incNE=2*(dy-dx);X(1)=0;Y(1)=0;d=d0;D(1:x1)=0;D(1)=d0; for x=1:x1 if d=0 d=d-incNE; X(x+1)=x; Y(x+1)=Y(x)+1; else d=d-incE; X(x+1)=x; Y(x+1)=Y(x); end D(x+1)=d;endplot(X,Y,g,X,Y,o);X1
6、(1)=0; Y1(1)=0;X1(2)=5; Y1(2)=2;line(X1,Y1)(3)Bresenham画线算法 与DDA算法相似, Bresenham画线算法也要在每列象素中找到与理想直线最逼近的象素点。 根据直线的斜率来确定变量在x或y方向递增一个单位。另一个方向y或x的增量为0或1,它取决于实际直线与最接近网格点位置的距离。这一距离称为误差。算法的巧妙构思,使每次只需检查误差项(增量)的符号即可。 定义决策变量 d = d+k (0k1) 设0k1,如直线上的一点为(x,y),则下一点为: (x+1,y) (d=0.5) 当d1时, 让d=d-1,以保证0=d1 d0=0定义决策变
7、量 d = d+k (0k1) 设0k1,如直线上的一点为( x,y), 则下一点为: (x+1,y) (d=0.5) 当d1时, 让d=d-1,以保证0=d1 定义决策变量 e = d-0.5 (0k1),e0 = -0.5则下一点为: (x+1,y) (e=0) 当e 0时, 让e=e-1, (重新初始化误差项)由于算法只用到误差项的符号,为了改用整数以避免除法,可以作如下替换: e = 2*e*dx定义决策变量 e = 2*e*dx, e0 = - dx; e=e +2*dy则下一点为: (x+1,y) (e =0); 当e 0时, 让 e= e - dx, (重新初始化误差项)Clea
8、r;x0=0;y0=0;x1=5;y1=2dy=y1-y0;dx=x1-x0;dx2=2*dx;k=dy/dx;X(1)=x0;Y(1)=y0;e=-dx;for x=x0+1:x1 e=e+2*dy; X(x+1)=x; Y(x+1)=Y(x); if e=0 X(x+1)=x; Y(x+1)=Y(x)+1; e=e-dx2; end endplot(X,Y, r,X,Y,o);X1(1)=x0; Y1(1)=y0;X1(2)=x1; Y1(2)=y1;line(X1,Y1);(4)园的八对称性 园心位于原点的园有四条对称轴: x=0,y=0,x=y,x=-y从而若已知园弧上一点,就可以得到
9、其关于四条对称轴的七个对称点,这称为园的八对称性。只要画出八分之一园弧 , 就可画出整个园。例:用中点算法画一R=5的园d0=1-R=1-5=-40 M在园内,取E点(1,5)d1=d0+(2xi+3)=-4+(2*0+3)=-10, M在园外,取SE点(3,4)d3=d2+2*(xi-yi)+5=4+2*(2-5)+5=30, M在园外,取SE点(4,3) d4=d3 +2*(xi-yi)+5=3+2*(3-4)+5=60, M在园外,取SE点(5,2)yx if d0 d=d+2*x+3; %取E点 else d=d+2*(x-y)+5;%取SE点 y=y-1; end x=x+1; X(
10、x+1)=x; Y(x+1)=y;end%利用对称性求其它七个八分园X1=Y;Y1=X;X2=-Y;Y2=X;X3=-X;Y3=Y;X4=Y;Y4=-X;X5=X;Y5=-Y;X6=-X;Y6=-Y;X7=-Y;Y7=-X;plot(X,Y,X,Y,o,X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5,X6,Y6,X7,Y7);title(R=5);(5)二阶差分法v 要点:v 利用二阶差分降低增量的阶数 二阶差分(降低增量的阶数,用差分法消除中点算法中的乘法运算)。例:设R=5,试用二阶差分法画园中点算法:xydDED SE051-5=-435-2*5=-515-4+3=-13+2
11、=5-5+2=-325-1+5=45+2=7-3+2=-1344-1=37+2=9-1+4=3433+3=69+2=115+4=9xydDEDSEx=x+1 ( d0)y-1d + DSEDE+2DSE+4(7)圆的中点算法%画第二个八分园clear;R=5.0;Y(1)=R; X(1)=0; d=1-R; deltaE=3; deltaSE=5-2*R;x=0;y=R;while yx if d0 %选 E点 d=d+deltaE; deltaE=deltaE+2; deltaSE=deltaSE+2; else %选 SE点 d=d+deltaSE; deltaE=deltaE+2; de
12、ltaSE=deltaSE+4; y=y-1; end x=x+1; X(x+1)=x; Y(x+1)=y;end(8)椭圆的中点算法a=5;b=3;x=0;y=b;d1=b*b+a*a*(-b+0.25);X(1)=0;Y(1)=b;while b*b*(x)a*a*(y) if d10 if d20 d2=d2+b*b*(2*x+3)+a*a*(-2*y+3); % x=x+1; y=y-1; else d2=d2+a*a*(-2*y+3); x=x+1; y=y-1; end X(x+1)=x; Y(x+1)=y;endplot(X,Y,X,Y,o);一、 名词解释:计算机图形学研究怎样
13、用计算机生成、处理和显示图形和科学。图象处理将客观世界中原来存在的物体映象处理成新的数字化图象。模式识别研究如何对所输入的图象进行分析和识别。计算几何研究几何模型和数据处理的学科,着重讨论几何形体的计算机表示、分析和综合,研究如何方便灵活、有效地建立几何形体的数学模型以及如何更好地存储和管理等。凸多边形是指这样一类多边形:在多边形内任选两个点,将这两个点用线段连接后,此线段上所有的点都在多边形内。种子填充算法根据已知多边形区域内部的一个象素点来找到区域内其它象素点,从而对多边形区域内部进行填充。窗口在用户坐标系中的图形根据需要常用一个矩形区域确定一个矩形部分,然后将这个区域内的图形输出到屏幕上
14、去,这个矩形称这窗口。视区在图形设备的显示范围内,由设备坐标系定义的一个矩形区域。多项式插值采用多项式函数去插值给定的数据点,即对于给定的点Pi(i=0,1,n),要构造多项式函数y=P(x),使得yi=P(xi)。小挠度曲线曲线上每一点的斜率的绝对值都小于1的曲线。图形变换指对图形的几何信息经过几何变换后产生新的图形。齐次坐标系就是N维向量由N+1维向量来表示。一个N维向量的齐次坐标表示不惟一,由哑坐标决定大小。轮廓线指物体与周围环境的交线。等值线是把实际的值在已定义的域上用图形表示的一种方法,即把值相同的点连接成的线。图形的翼边表示图形的一种表示方法。表示一个物体,可以指出它的相邻边及相邻
15、面、有关的端点等,如对于一条边,指出它相邻的面、边的两个端点以及四条邻边,这四条边好象翅膀一样。ER模型建立物体模型时常用到实体联系法,它用简单的图形方式即ER模型描述物体,由实体、联系、属性三部分组成。图形消隐计算机为了反映真实的图形,把隐藏的部分从图中消除。本影物体表面上那些没有被光源直接照射的部分。半影景物表面上那些被特定光源直接照射,但并非被所有特定光源直接照射的部分。用户坐标系用户为处理自已的图形时所采用的坐标系,单位由用户自己决定。规范化设备坐标系将各个设备坐标系中的数据化为统一的数据范围从而得到的设备坐标系。构造根据选择的作图命令和指定的一系列参数进行作图。约束技术在构造过程中运用一些条件帮助人们完成动作。如水平约束或垂直约束。