您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 计算机图形学+机械工业出版社+徐长青+答案
计算机图形学1计算机图形学作业答案第一章序论第二章图形系统1.什么是图像的分辨率?解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。2.计算在240像素/英寸下640×480图像的大小。解答:(640/240)×(480/240)或者(8/3)×2英寸。3.计算有512×512像素的2×2英寸图像的分辨率。解答:512/2或256像素/英寸。第三章二维图形生成技术1.一条直线的两个端点是(0,0)和(6,18),计算x从0变到6时y所对应的值,并画出结果。解答:由于直线的方程没有给出,所以必须找到直线的方程。下面是寻找直线方程(y=mx+b)的过程。首先寻找斜率:m=⊿y/⊿x=(y2-y1)/(x2-x1)=(18-0)/(6-0)=3接着b在y轴的截距可以代入方程y=3x+b求出0=3(0)+b。因此b=0,所以直线方程为y=3x。2.使用斜截式方程画斜率介于0°和45°之间的直线的步骤是什么?解答:(1)计算dx:dx=x2-x1。(2)计算dy:dy=y2-y1。(3)计算m:m=dy/dx。(4)计算b:b=y1-m×x1(5)设置左下方的端点坐标为(x,y),同时将xend设为x的最大值。如果dx0,则x=x2、y=y2和xend=x1。如果dx0,那么x=x1、y=y1和xend=x2。(6)测试整条线是否已经画完,如果xxend就停止。(7)在当前的(x,y)坐标画一个点。(8)增加x:x=x+1。(9)根据方程y=mx+b计算下一个y值。(10)转到步骤(6)。3.请用伪代码程序描述使用斜截式方程画一条斜率介于45°和-45°(即|m|1)之间的直线所需的步骤。计算机图形学2解答:假设线段的两个端点为(x1,y1)和(x2,y2),且y1y2intx=x1,y=y1;floatxf,m=(y2-y1)/(x2-x1),b=y1-mx1;setPixel(x,y);/*画一个像素点*/while(yy2){y++;xf=(y-b)/m;x=Floor(xf+0.5);setPixel(x,y);}4.请用伪代码程序描述使用DDA算法扫描转换一条斜率介于-45°和45°(即|m|≤1)之间的直线所需的步骤。解答:假设线段的两个端点(x1,y1)和(x2,y2),且x1x2intx=x1,y;floatyf=y1,m=(y2–y1)/(x2-x1);while(x=x2){y=Floor(yf+0.5);setPixel(x,y);x++;yf=yf+m;}5.使用Bresenham算法画斜率介于0°和45°之间的直线所需的步骤。解答:(1)计算初始值:dx=x2-x1Inc2=2(dy-dx)dy=y2-y1d=Inc1-dxInc1=2dy(2)设置左下方的端点坐标为(x,y),同时将xend设为x的最大值。如果dx0,则x=x2,y=y2和xend=x1。如果dx0,那么x=x1、y=y1和xend=x2。(3)在当前的(x,y)坐标画一个点。(4)判断整条线段是否已经画完,如果x=xend就停止。(5)计算下一像素的位置。如果d0,那么d=d+Inc1。如果d≥0,那么d=d+Inc2,并且y=y+1。(6)增加x:x=x+1。(7)在当前的(x,y)坐标画一个点。(8)转到步骤(4)。6.请指出用Bresenham算法扫描转换从像素点(1,1)到(8,5)的线段时的像素位置。计算机图形学3解答:首先必须找到初始值。在这个例子中,dx=x2-x1=8-1=7dy=y2-y1=5-1=4因此,Inc1=2dy=2×4=8Inc1=2(dy-dx)=2×(4-7)=-6d=Inc1-dx=8-7=17.使用Bresenham算法扫描转换圆的步骤是什么?解答:(1)设置初始变量:(h,k)=圆心坐标;x=0;y=圆的半径r;d=3-2r。(2)测试整个圆是否已经扫描转换完。如果xy就停止。(3)以中心(h,k)为对称点,对当前的(x,y)坐标画8个圆上的点:plot(x+h,y+k)plot(-x+h,-y+k)plot(y+h,x+k)plot(-y+h,-x+k)plot(-y+h,x+k)plot(y+h,-x+k)plot(-x+h,y+k)plot(x+h,-y+k)其中plot(a,b)表示以给定的参数为中心画一个小块。(4)计算下一个像素的位置。如果d0,那么d=d+4x+6和x=x+1。如果d≥0,那么d=d+4(x-y)+10、x=x+1和y=y-1。(5)转到步骤(2)。8.给定数据点P0(0,0),P1(1,2)P2(2,1)P3(3,-1)P4(4,10)P5(5,5),用三次B样条插值法插值这些数据点,求出曲线,并找出定义三次B样条的节点集t0,……,t9。解答:m=3,n=5,选择节点集可以有两种方案:(1)选择:)(103210xtttt,)(69876nxtttt其余的节点按以下方式选择:1,......,0,...11mnimxxtmiimi故:23321t,33432t(2)三次样条的另一种方案是:13210tttt,69876tttt其余节点按以下方式选择:24iixt,I=0,……,n-4故:t4=2,t5=3计算机图形学4两种方法选择节点集,其根据是数据点沿x轴为等间距。第四章图形的裁剪及几何变换1.写出实现下述映射的规范化变换,将左下角在(1,1),右上角在(3,5)的窗口映射到(a)规范化设备的全屏幕视区;(b)左下角在(0,0),右上角在21,21的视区。解答:(a)窗口参数是5,1,3,1maxminmaxminwywywxwx。视区参数是1,0,1,0maxminmaxminvyvyvxvx。那么41,21yxss且1004141021021N(b)窗口参数同(a)。视区参数是21,0,21,0minmaxmaxminwyvyvxvx。那么81,41yxss且1008181041041N2.设R是左下角L(-3,1),右上角为R(2,6)的矩形窗口。请写出图中的线段端点的区域编码。【图5.6P90】解答:点(x,y)的区域编码根据下面的模式设置。比特1=sign(y-ymax)=sign(y-6)比特3=sign(x-xmax)=sign(x-2)比特2=sign(ymin-y)=sign(1-y)比特4=sign(xmin-x)=sign(-3-x)此处:)0(,0)0(,1)(aaasign因此:A(-4,2)→0001B(-1,7)→1000C(-1,5)→0000D(3,8)→1010计算机图形学5E(-2,3)→0000F(1,2)→0000G(1,2)→0100H(3,3)→0010I(-4,7)→1001J(-2,0)→10003.求垂直线x和水平线y与21PP四边形平行坐标轴的矩形裁剪窗口的交点。写出线段(从),(111yxP到),(222yxP)与(a)垂直线x=a,(b)水平线y=b的交点。解答:线段的参数方程是:)()(121121yytyyxxtxx10t(b)因为ax,将它代入方程)()(121xxxat得到。然后把此值再代入方程,则交点是axI和121211yyxxxayyI(c)因为by,将它代入方程)()(121yyybt得到。然后把此值再代入方程,则交点是byI和121211xxyyyaxxI4.如何判断一个点P(x,y)是在由A(x1,y1)和B(x2,y2)所连接的线段的左边还是右边。解答:参见图所示。对于向量AB和AP,如果P点在AB的左边,根据两个向量叉乘的Xmin=-3Xmax=2ymax=6ymin=1A(-4,2)F(1,2)E(-2,3)G(1,-2)H(3,3)C(-1,5)D(3,8)I(-4,2)J(-2,10)B(-1,7)xy计算机图形学6定义,向量AB×AP的方向是向量K,即xy平面的正交方向。如果在右边,叉乘方向为-K,此时:JyyIxxAPJyyIxxAB)()()()(111212因此:KxxyyyyxxAPAB112112这个叉乘的方向由下式确定:112112xxyyyyxxC5.如果C是正的,P在AB的左边。如果C是负的,P在AB的右边。6.根据一个对象点绕原点旋转的旋转变换,写出对应的矩阵表示。解答:根据sin和cos的三角函数定义计算得到:x´=rcos(θ+Φ),y´=rsin(θ+Φ)和x=rcosΦ,y=rsinΦ根据三角公式,得出:rcos(θ+Φ)=r(cosθcosΦ-sinθsinΦ)=xcosθ-ysinθ和rsin(θ+Φ)=r(sinθcosΦ+cosθsinΦ)=xsinθ-ycosθ或x´=xcosθ-ysinθ,y´=xsinθ+ycosθ设P´=''xy,P=xy且R=cossinsinsin则可得出PRP。7.(a)写出对象绕原点旋转的旋转变换矩阵。(b)设点为P(2,-4),旋转后的新坐标是什么?PBAB×APKA计算机图形学7解答:(a)根据上题:R30°=cos30sin30sin30cos30oooo=31221322(b)新的坐标可以通过矩阵乘法得到:3122132224=321238.写出点Q(x,y)绕定点P(h,k)旋转的旋转变换。解答:通过三步确定:(1)平移对象,使它的旋转中心P与原点重合;(2)绕原点旋转;(3)将P平移回(h,k)。使用v=hI+kJ作为平移向量,PR,可通过组合变换得到:vvOTRTR,9.写出下列关于原点的缩放变换:(a)在X轴方向缩放a单位(b)在Y轴方向缩放b单位(c)同时分别在X轴方向缩放a单位,在Y轴方向缩放b单位。解答:(a)点P(x,y)缩放变换后得到点(ax,y),可以用形式Sa,1•P的矩阵表示,即:001axy=axy(b)与(a)类似,可以用形式S1,b,P的矩阵表示,即100bxy=xby(c)在两个方向上的缩放可以通过x´=ax和y´=by变换得到Sa,b•P。写成矩阵形式有:00axaxbyby10.写出以直线L作为反射轴的反射变换矩阵。解答:设图中所示的直线L交y轴于B(0,b),倾斜角为θ(与x轴夹角)。然后用已知的交换来描述整个过程:计算机图形学8(1)平移交点B到原点。(2)旋转-使直线L跟x轴重合。(3)关于x轴镜面对称。(4)旋转回到原方向。(5)将B平移回(0,b)。其交换表示为:ML=Tv*Rθ*Mx*R--θ*T-v其中,v=bJ11.矩阵11ab被称为同时错切变换或简称错切变换。在b=0的特例下叫x方向错切变换;a=0时叫y方向错切变换。说明这个变换在a=2和b=3时对正方形A(0,0),B(1,0),C(1,1),D(0,1)进行变换的结果。解答:图中(a)是原始正方形,图(b)是x方向错切变换,图(c)是y方向错切变换,图(d)是在两个方向上的错切变换。12.寻找圆方程对应的xy坐标方程,假设x´y´坐标是通过对xy坐标在x方向缩放a单位,在y方向缩放b单位得到的。122yx解答:由坐标缩放变换方程可以得到:xax1'yby1'进行替换,得到:122byaxP’PxyθC(1,
本文标题:计算机图形学+机械工业出版社+徐长青+答案
链接地址:https://www.777doc.com/doc-7317623 .html