




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机图形学作业答案 第二章图形系统 1 什么是图像的分辨率? 解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点 的数目。 2 计算在240像素/英寸下640480图像的大小。 解答:(640/240)(480/240)或者(8/3)2英寸。 3 计算有512512像素的22英寸图像的分辨率。 解答:512/2或256像素/英寸。 第3章 二维图形生成技术 a) 一条直线的两个端点是(0,0)和(6,18),计算x从0变到6 时y所对应的值,并画出结果。 解答:由于直线的方程没有给出,所以必须找到直线的方程。下面 是寻找直线方程(ymxb)的过程。首先寻找斜率: m y/x (y2y1)/(x2x1) (18 0)/(60) 3 接着b在y轴的截距可以代入方程y3xb求出 03(0)b。因此 b0,所以直线方程为y3x。 b) 使用斜截式方程画斜率介于0和45之间的直线的步骤是什么? 解答: 1. 计算dx:dxx2x1。 2. 计算dy:dyy2y1。 3. 计算m:mdy/dx。 4. 计算b: by1mx1 5. 设置左下方的端点坐标为(x,y),同时将xend设为x 的最大值。如果dx 0,那么xx1、yy1和xendx2。 6. 测试整条线是否已经画完,如果x xend就停止。 7. 在当前的(x,y)坐标画一个点。 8. 增加x:xx1。 9. 根据方程ymxb计算下一个y值。 10. 转到步骤(6)。 c) 请用伪代码程序描述使用斜截式方程画一条斜率介于45和 45(即|m|1)之间的直线所需的步骤。 解答: 假设线段的两个端点为(x1,y1)和(x2,y2),且y1y2 int x = x1, y = y1; float xf, m = (y2y1)/(x2x1), b = y1 mx1; setPixel( x, y ); /*画一个像素点*/ while( y y2 ) y+; xf = ( yb)/m; x = Floor( xf +0.5 ); setPixel( x, y ); d) 请用伪代码程序描述使用DDA算法扫描转换一条斜率介于 45和45(即|m| 1)之间的直线所需的步骤。 解答: 假设线段的两个端点(x1, y1)和(x2,y2),且x1x2 int x = x1, y; float yf = y1, m = ( y2 y1) / ( x2x1); while( x = x2 ) y = Floor( yf + 0.5 ); setPixel( x, y ); x+; yf = yf + m; e) 使用Bresenham算法画斜率介于0和45之间的直线所需的步 骤。 解答: 11. 计算初始值: dx x2x1 Inc2 2(dydx) dy y2y1 d Inc1 dx Inc1 2dy 12. 设置左下方的端点坐标为(x,y),同时将xend设为x 的最大值。如果dx 0, 那么xx1、yy1和xendx2。 13. 在当前的(x,y)坐标画一个点。 14. 判断整条线段是否已经画完,如果xxend就停止。 15. 计算下一像素的位置。如果dy就停止。 21. 以中心(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)表示以给定的参数为中心画一个小块。 22. 计算下一个像素的位置。如果d 0,那么dd4x6 和xx1。如果d0,那么dd4(xy)10、x x+1和yy1。 23. 转到步骤(2)。 h) 给定数据点P0(0,0),P1(1,2)P2(2,1)P3(3,1) P4(4,10)P5(5,5),用三次B样条插值法插值这些数据点, 求出曲线,并找出定义三次B样条的节点集t0,t9。 解答: m3, n5,选择节点集可以有两种方案: (1) 选择: , 其余的节点按以下方式选择: 故: , (2) 三次样条的另一种方案是: , 其余节点按以下方式选择: ,I0,,n-4 故: t42, t53 两种方法选择节点集,其根据是数据点沿x轴为等间距。 第4章 图形的裁剪及几何变换 a) 写出实现下述映射的规范化变换,将左下角在(1,1),右上 角在(3,5)的窗口映射到(a)规范化设备的全屏幕视区; (b)左下角在(0,0),右上角在的视区。 解答: a) 窗口参数是。视区参数是。那么且 b) 窗口参数同(a)。视区参数是。那么且 b) 设R是左下角L(3,1),右上角为R(2,6)的矩形窗口。 请写出图中的线段端点的区域编码。【图5.6 P90】 解答: 点(x,y)的区域编码根据下面的模式设置。 比特1sign(yymax)sign(y6) 比特3sign(xxmax) sign(x2) 比特2sign(yminy)sign(1y) 比特4sign(xminx) sign(3x) 此处: 因此: A(4,2)0001 B(1,7)1000 C(1,5)0000 D(3,8)1010 E(2,3)0000 F(1,2)0000 G(1,2)0100 H(3,3)0010 I(4,7)1001 J(2,0)1000 Xmin=-3 Xmax=2 ymax=6 ymin=1 A(-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) x y c) 求垂直线x和水平线y与四边形平行坐标轴的矩形裁剪窗口的交 点。写出线段(从到)与(a)垂直线xa,(b)水平线yb的 交点。 解答: 线段的参数方程是: (a) 因为,将它代入方程得到。然后把此值再代入方程,则 交点是和 (b) 因为,将它代入方程得到。然后把此值再代入方程,则 交点是和 d) 如何判断一个点P(x,y)是在由A(x1,y1)和B(x2,y2)所连接 的线段的左边还是右边。 解答: 参见图所示。对于向量AB和AP,如果P点在AB的左边,根据两 个向量叉乘的定义,向量ABAP的方向是向量K,即xy平面的正交 方向。如果在右边,叉乘方向为K,此时: P B ABAP K A 因此: 这个叉乘的方向由下式确定: e) 如果是正的,P在AB的左边。如果是负的,P在AB的右边。 f) 根据一个对象点绕原点旋转的旋转变换,写出对应的矩阵表 示。 解答: 根据sin和cos的三角函数定义计算得到: xr cos(),yr sin() 和 x r cos, y r sin 根据三角公式,得出: r cos() r (coscossinsin)x cosy sin 和 r sin() r (sincoscossin)x siny cos 或 x x cosy sin, y x siny cos 设P =, P =且 则可得出。 g) (a)写出对象绕原点旋转的旋转变换矩阵。(b)设点为 P(2,4),旋转后的新坐标是什么? 解答: c) 根据上题: R30 d) 新的坐标可以通过矩阵乘法得到: h) 写出点Q(x,y)绕定点P(h,k)旋转的旋转变换。 解答: 通过三步确定:(1)平移对象,使它的旋转中心P与原点重合; (2)绕原点旋转;(3)将P平移回(h,k)。 使用vh Ik J作为平移向量,可通过组合变换得到: i) 写出下列关于原点的缩放变换:(a)在X轴方向缩放a单 位 (b)在Y轴方向缩放b单位(c)同时分别在X轴方向缩放a单 位,在Y轴方向缩放b单位。 解答: e) 点P(x,y)缩放变换后得到点(ax,y),可以用形式 Sa,1P的矩阵表示,即: f) 与(a)类似,可以用形式S1,b,P的矩阵表示,即 g) 在两个方向上的缩放可以通过x=ax和yby变换得到 Sa,bP。写成矩阵形式有: j) 写出以直线L作为反射轴的反射变换矩阵。 解答: 设图中所示的直线L交y轴于B(0,b),倾斜角为(与x轴夹 角)。然后用已知的交换来描述整个过程: 24. 平移交点B到原点。 25. 旋转使直线L跟x轴重合。 26. 关于x轴镜面对称。 27. 旋转回到原方向。 28. 将B平移回(0,b)。 其交换表示为: MLTv * R* Mx * R-* T-v 其中,v=bJ P P x y k) 矩阵被称为同时错切变换或简称错切变换。在b0的特例下叫 x方向错切变换;a0时叫y方向错切变换。说明这个变换在a2 和b3时对正方形A(0,0),B(1,0),C(1,1),D(0, 1)进行变换的结果。 解答: 图中(a)是原始正方形,图(b)是x方向错切变换,图(c)是y方 向错切变换,图(d)是在两个方向上的错切变 换。 (d) (c) (b) (a) B(1,3) C(3,4) D(2,1) A C(1,4) B(1,3) D A B A D B A D(2,1) C(3,1) C(1,1) l) 寻找圆方程对应的xy坐标方程,假设xy坐标是通过对xy坐标 在x方向缩放a单位,在y方向缩放b单位得到的。 解答: 由坐标缩放变换方程可以得到: 进行替换,得到: 应注意缩放的结果,圆方程经过变换后变为xy坐标系的椭圆方程。 m) 写出直线方程对应的xy坐标方程,假设坐标系是由xy坐标系旋 转90得到。 解答: 旋转坐标变换方程可以写成: , 代入原方程式得到,写成y的方程式,得 第5章 交互技术及用户接口 第6章 三维形体的表示 第7章 三维形体输出流水线 a) 二次旋转变换定义为先绕x轴再绕y轴旋转的变换,(a)写出 这个变换的矩阵;(b)旋转的先后顺序对结果有影响吗? 解答: a) 通过组合两个旋转矩阵可以得到变换T: b) 通过可以得到变换矩阵: 这个矩阵与(a)的不同,所以旋转的顺序有影响。 b) 旋转轴L是向量V和通过轴的点P决定的。试写出绕L轴旋转 的变换。 解答: 通过下面步骤找到要求的变换: 29. 将P平移到原点。 30. 使V平行于向量K。 31. 绕K旋转。 32. 逆变换步骤(2)和(1)。 因此有: c) 写出关于xy平面对称面的镜面反射变换。 解答: 由图得知P(x,y,z)得对称点是(x,y,z)。其反射变换是: P(x,y,z) P(x,y,z) y x z d) 用原点作为投影中心,请写出满足下述条件的透视变换:通过 点R0(x0,y0,z0)并且有法线向量。 解答: 设P(x,y,z)点投影到点。向量和方向相同,因此存在一个数 ,使得且 现在求得值。因为所有在视平面上的点满足下面的方程: 其中,将代入方程得到: 这个投影变换不能用33矩阵变换公式表示。但是使用齐次 坐标表示三维点时, 可以写出投影变换得44矩阵: P(x,y,z) N=n1I+n2J+n3K P(x,y,z) y x z 将此矩阵与点P的齐次坐标表示P(x, y, z, 1)连接运算,得到,这就 是上面所得到的齐次坐标。 e) 写出投影到视平面zd的透视投影,其中投影中心在原点 (0,0,0)。 解答: 平面zd平行于xy平面(且距离为d个单位)。因此视平面的法线向 量N和xy平面的法线向量K,即NK。选择R0(0,0,d)视见参考 点,根据上题可以确定参数: 因此: 所以投影矩阵是: f) 写出投影到xy平面,方向是的平行投影方程。 解答: 从可以看出向量V和有相同方向。即。比较分量,则有: 因此: 在33的矩阵形式中,有: P(x,y,0) V=a1+b3+cK P(x,y,z) 所以 g) 如何确定一个点P在观察体的内部还是外部? 解答: 一个平面空间将空间分成两部分。平面的一般方程是: 对于任意点P(x,y,z),若定义一个标量函数f(P),有: 如果sign f(P)sign f(Q),那么说P点和Q点在同一边(相 对平面而言)。令和分别表示顶平面、底平面、左平面、右平面、 近平面、远平面。 另外,L和R分别是窗口的左下角点和右上角点,且Pb和Pf分别是后 裁剪平面和前裁剪平面的参考点。 那么如果下面都成立,则P点在观察体内: 对于平面fr来说,P和L在同一边; 对于平面fB来说,P和R在同一边; 对于平面fR来说,P和L在同一边; 对于平面fL来说,P和R在同一边; 对于平面fN来说,P和Pb在同一边; 对于平面fF来说,P和Pf在同一边。 相当于: sign fT(P) = sign fT(L) sign fL(P) = sign fL(R) sign fB(P) = sign fB(R) sign fN(P) = sign fN(Pb) sign fR(P) = sign fR(L) sign fF(P) = sign fF(Pf) h) 对于三维CohenSutherland裁剪算法,下述观察体作为裁剪区 域时,线段端点的区域编码分别是什么?(a)规范化平行观察 体;(b)规范化透视观察体。 解答: 整个过程逻辑上可以参照第5章的二维裁剪算法。在三维情况下,描 述观察体的平面把三维空间分成6个重叠的外部区域(即观察体的上 下左右),加上观察体的内部。因此需要用6比特区域编码。设 P(x,y,z)为端点的坐标。 a) 对于规范化平行观察体,根据下述规定把每个比特设 为真(1)或假(0) 比特1端点在观察体上方sign(y1) 比特2端点在观察体下方sign(y) 比特3端点在观察体右方sign(x1) 比特4端点在观察体左方sign(x) 比特5端点在观察体后方sign(z1) 比特6端点在观察体前方sign(z) 如果(a)为正的,则sign(a)1,否则为0。 b) 对于规范化平行透视体: 比特1端点在观察体上方sign(yz) 比特2端点在观察体下方sign(zy) 比特3端点在观察体右方sign(xz) 比特4端点在观察体左方sign(zx) 比特5端点在观察体后方sign(z1) 比特6端点在观察体前方sign P(zfz) 线段的分类是(1)如果两个区域编码都是000000,则为可见线段; (2)如果两个区域编码的按位与操作不是000000,则为完全不可见线 段;(3)如果两个区域编码的按位与操作是000000,则为要裁剪线段 i) 写出线段与下述规范化观察体边界平面相交的交点:(a)平行 投影;(b)透视投影。 解答: 设P1(x1,y1,z1)和P2(x1,y1,z1)为线段的两个端点。线段的参数 方程是: 交点参数是: 其中N是法线向量,R0是平面的参考点。 (a) 平行规范化观察体边界平面是x0,x1,y0,y1,z 0和z1。对于平面x1,有NI和R0(1,0,0)。所 以有: 如果0t11,线段与平面有交点,交点坐标为: 同理可以求出与其他平面的交点。 (b) 透视规范化观察体边界平面是xz,xz,yz,y z,zzf和z1。为了求出与xz平面的交点,将平面方程 写成xz0。根据这个方程,有法线向量NIK,参考 点是R0(0,0,0)。所以有: 如果0t11,则将代入线段的参数方程计算交点。同理可以求出与其 他平面的交点。 第8章 消隐及真实感图形生成技术 a) 已知点P1(1,2,0)、P2(3,6,20)和观察点P3(2,4, 6),试判断从C(0,0,10)观察时,哪个点挡了其他点。 解答: 连接观察点C(0,0,10)和点P1(1,2,0)的直线是 xt,y2t, z1010t 为了判断P2(3,6,20)是否在这条线上,可以将点带入方程,得x 3时t3,在t3时x3,y6,z20,所以P2在过C点和P1点的 投影线上。 接着以C为基准,判断哪个点在前面。C,P1,P2分别在这条线的t 0,1,3位置上。由t值可知,P1在P2前面,即P1遮挡了P2。 现在判断P3(2,4,6)是否在这条线上。x=2时t2,y4,z 10。所以P3(2,4,6)不在这条投影线上,既没有遮挡P1,P2,也 没有被P1、P2遮挡。 b) 为什么需要隐藏面消影法? 解答:需要用隐藏面消影法来判断哪些物体和表面遮挡了放在它们 后面的物体和表面,从而产生更逼真的图像。 c) 需要用哪两步判断给定的点P1(x1,y1,z1)是否遮挡了另一 个点P2(x2,y2,z2)? 解答:必须判断(1)两个点是否在同一个投影线上。(2)如果 是,哪个点在另一个点前面。 d) 为什么在平行投影时更容易确定隐藏面? 解答:平行投影没有灭点,因而,任意点P(a,b,z)和其他有同 样x和y坐标的点位于同一投影线上。这样只需比较z来判断哪个点更 靠近观察者。 e) Z缓冲器算法是怎样判断哪个面应消影的? 解答:Z缓冲器算法设置了一个二维数组,类似于帧缓冲器。但是, Z缓冲器存放的是每个像素点的深度值,而不是帧缓冲器中的颜色 值。Z缓冲器的初始值设置为某个大的数值,通常是后裁剪平面的距 离。在判断像素(x,y)上的哪个平面更靠近观察者时,就可以简 单的比较Z缓冲器中的深度值和当前平面的深度值。如果当前平面的 值比Z缓冲器中的值小(即距视点更近),则用新值替换原Z缓冲器 中的值,像素的颜色值也变成新平面的颜色值。 f) 局部光照模型和全局光照模型的不同之处是什么? 解答: 局部光照模型主要是考虑光源发出的光对物体的直接影响。另外, 全局光照模型除了处理光源发出的光之外,还考虑其他辅助光的影 响,如光线穿过透明或半透明物体,以及光线从一个物体表面反射 到另一个表面等。 g) 物体的颜色很大程度上取决于它的漫反射系数。如果kd (0.8,0.4,0)且光源是蓝色的,那么物体是什么颜色的? 解答:黑色。由kd得知,物体不反射蓝光,又光源没有红光和绿 光。 h) 参见上题,如果光源用品红色的,会是怎样的情况? 解答:红色。因为物体只反射品红色光的红色部分。 i) 假设点P1在扫描线y1上且亮度为I1,点P2在扫描线y2上且亮度为 I2。给出y方向上的递推公式,该公式可以用线性插值计算P1和P2 之间所有扫描线的亮度值I。 解答:设P1为开始点,则从一条扫描线到下一条扫描线的亮度变化 值为 所以: 且,其中i=2,,y2y1。 j) 参见上题,如果在第5条线上的点P1有RGB颜色(1,0.5, 0),在第15条线上的点P2有RGB颜色(0.2,0.5,0.6)。那么在 第8条线上的点是什么颜色? 解答: 因为 所以有为第8条线上点的颜色。 11说出表面明暗处理的三个部分和用于计算每个部分的辅助光 线。 解答:局部贡献(阴影光线),反射光贡献(镜面反射光线)和透 射光贡献(镜面透射光线)。 12一束光线表示为,其中且。分别求出对应于t0,1,2.5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临时雇佣的家政合同范本
- 合同违约解除协议书范本
- 商铺乙方转租合同协议书
- 代销合作合同协议书范本
- 南开区食品运输合同范本
- 公司签约作者的合同范本
- 他方出资我方经营协议书
- 粉针肿瘤免疫治疗优化-洞察及研究
- ktv与商家合同协议书
- 三年恋爱合同协议书范本
- MT-T 1199-2023 煤矿用防爆柴油机无轨胶轮运输车辆安全技术条件
- (2024年)公路工程工地试验检测培训课件
- (高清版)TDT 1042-2013 土地整治工程施工监理规范
- 北师大版四年级下册数学计算题400道及答案
- 兰花主要病害的识别及防治
- 新能源汽车充电桩招商引资方案
- 药店各管理制度
- 幼儿园招生小组计划书
- 《妇产科护理课件:宫颈癌的护理》
- 2022版《道德与法治新课程标准》课标测试卷测试题库(含答案)(教师招聘试卷教资考试)
- 平、坡、刚性屋面防水施工技术培训讲义
评论
0/150
提交评论