图形学习题1.doc_第1页
图形学习题1.doc_第2页
图形学习题1.doc_第3页
图形学习题1.doc_第4页
图形学习题1.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 绪论1 图形学研究的任务是什么?计算机图形学是研究在计算机中输入,表示,处理和显示图形的原理,方法及硬件设备的学科。2 请描述图形图象系统的硬件组成采集(输入) (作用:将各种形式的信息转换成适合计算处理的形式) 纸带输入机二维交互式输入(键盘,鼠标,输入板,扫描仪,光笔等)三维(空间球,数据手套等)显示:随机扫描显示器存储管式显示器光栅扫描显示器。输出:打印机和绘图仪第二章 计算机图形系统1 当显示器分辨率为1024*768时,计算24位位图做需要的桢缓存内存。 1024*768*3Byte=2.25M2请解释VC+中的CDC类 是设备上下文的基类,其他的设备上下文类都是CDC的派生类。CDC类非常庞大,包含170多个成员,利用它可以访问整个显示设备和其他输出设备。3 VC+单文档程序,解释OnDraw, WMZPAINT, CDC,ccben+DC, Cpain+DC,并说明他门之间的关系。Visuale+所编写的Windows应用程序通常在视图类中通过在OnDraw函数中添加绘图代码来完成图形生成。OnDraw函数是CView类的虚拟成员函数。它在CViewvn派生类中被重新定义。每次CView类封装的试图窗口在接到WMPAINT消息后就会通过消息映射函数OnPaint调用它,WMPAINT消息是在某个视图窗口需要重画或刷新其显示内及时发出的,如果程序的数据被改变,则可以调用视图Invalidate成员函数,并最终调用OnDraw函数未完成绘图。窗口的绘图画面CClientDC是窗口客户区的设备上下文类,代表了客户区,窗口的绘图画面如果重新编写视图的Onpaint()函数,就需要使用CPaintDC类来定义一个对象 CPaint DC类是nPaint()函数使用设备上下文代表了第三章 基本光栅图形生成技术1请用代码描述使用DDA算法绘制一条斜率介于-45度和45度(即|m|=1)之间直线的步骤。解: 假设线段的两个端点(x1,y1)和(x2,y2),且x1x2int x=x 1,y;float yf=y, m=(y2-y1)/(x2-x1);while(x=x2) y=Floor(yf+0.5); setpixel(x,y); x+; yf=yf+m;2请用代码描述使用DDA算法绘制一条斜率介于45度和-45度之(即|m|=1)之间直线的步骤。解: 假设线段的两个端点(x1,y1)和(x2,y2),且y1y2int x,y=y1;float xf=x, minv=(x2-x1)/(y2-y1);while(y=y2) x=Floor(xf+0.5); setpixel(x,y); x=xf+minv; y+;3写出使用Bresenham算法绘制一条斜率介于0度和45度(即|m|=1)之间直线的步骤解:(1)计算初始值:dx=x2-x1, dy=y2-y1, InC1=2dyInC2=2(dy-dx), d=InC1-dx(2) 设置左下方的端点坐标为(x,y),同时将xend设为x的最大值。如果dx0,那么x=x,y=y和xend=x2。(3) 在当前的(x,y)坐标画一个点。(4) 判断整条线段是否已经画完,如果x=xend就停止。(5) 计算下一像素的位置。如果d=0,那么d=d+InC2,并且y=y+1(6) 增加x: x=x+1(7) 在当前的(x,y)坐标画一个点。(8) 转到步骤(4)。4请指出用Bresenham算法绘制从像素点(1,1)到(8,5)的线段时的像素位置。解:首先必须先找到初始值。在这个例子中,dx=x2-x1=8-1=7 dy=y2-y1=5-1=4因此,InC1=2dy=2*4=8InC2=2(dy-dx)=2*(4-7)= 6D=InC1-dx=8-7=1由算法算出的值示于下图dxy1 111+InC2= -522-5+InC1=3323+InC2=-343-3+InC1=5535+InC2=-164-1+InC1=7747+InC2=1855,请推导出Bresenham算法的迭代公式 P(32-33)d1=y-yi=(k(xi+1)+b)-yid2=(yi+1)-y=yi+1-(k(xi+1)+b)所以 d1-d2=2k(xi+1)-2yi+2b-1设 dy=y1-y0,dx=x1-x0,k=y/x=dy/dx所以 dx(d1-d2)=2dyxi-2dxyi+c(c=2dy+dx(2b-1)令 di=dx(d1-d2)因为 dx0所以 当 di0时 右上方(xi+1,yi+1)所以 第b+1 步:di+1 =2dyxi+1-2dxyi+1+c di+1-di=2dy(xi+1-xi)-2dx(yi+1-y0)因为 xi+1=xi+1所以di+1=di+2dy-2dx(yi+1-yi)若右方:则yi+1=yi 所以 di+1=di+2dy若右上方: 则yi+1=yi 所以 di+1=di+2dy-2dx第一次参数 d0=2dy-dx6. 区域填充算法对水平边的处理方法是怎样的,请分析。7.各边形定点坐标v1-v8 如下:v1=(2,4),v2=(9,4),v3=(9,7),v4=(8,7),v5=(8,9),v6=(4,9),v7=(4,7),v8=(2,7)说明扫描线y=6,7,8,9,10时,哪些边会被激活?解:x列包含对应最低点的x坐标,水平不包括:含其中Edgeyminymaxx1/mE24790E84720E47980E67940 当扫描线的值y=边界线被激活。此后边界线保持活跃,直到扫描线的值y大于边界线的ymax值。因此扫描线y=6,7,8,9和10时被激活的边界线如下所示: 当 y=6时,E2和E8被激活当 y=7时,边E2和E8的ymax=y,所以继续保持活跃。与此同时E4和E6也被激活当 y=8时,近E2和E8被移出边界列表。E4和E6继续保持活跃。当 y=9时,活跃的边没有变化当 y=10时,边E4和E6被移出边界列表,边界列表变为空。8在区域填充法中,什么是扫描线? 它来源于光栅显示器的显示原理。对于屏幕上所有待显示像素的信息,将这些信息按从上到下从左至右的方式显示。在这里,每一趟自左至右的显示所涉及的像素集合具有相同的y坐标值,形成一条直线,它就是一条y方向扫描线。同样道理,每一趟从上到下同样也能形成x方向扫描线。不过,人们更加习惯自左至右的扫描线。第四章 图形变换1导出平面坐标系X-O-Y中点(x,y)绕原点O转动的变换矩阵。解:如上图x=rcos(+) ,y=rsin(+) x=rcos y=rsin x=rcos(+)=r(coscos-sinsin)=xcos-ysin y=rsin(+)=r(sincos+cossin)=xsin+ycos设 P= x P=x 且R=cos -siny , y sin cos P=RP2.点P(2,-4)绕原点转动30度的新坐标是什么?解;R30=cos30 -sin30 =3/2 -1/2Sin30 cos30 1/2 3/2 新的坐标可以通过矩阵乘法得到3/2 -1/2 2 =3+21/2 3/2 -4 1-233写出点Q( x,y)绕定点P(h,k)旋转的变换矩阵解:通过三步确定:(1)平移对象,使它的旋转中心P与原点重合。 (2)绕原点旋转 (3)将P平移回(h,k)使用V=hI+kJ作为平移向量,R.P可通过组合变换得到: R.0=TvRT-V附:旋转变换的通用矩阵R.P=1 0 h cos sin 0 1 0 -hO 1 k sin cos 0 0 1 -kO 0 1 0 0 1 0 0 1 =cos sin (-hcos+ksin+h)sin cos (-hsin-kcos+k)0 0 1 4,将三角形A(0,0),B(1,1),C(5,2)放大2倍,保持C不动,写出变换矩阵和ABC的新位置。 解:变换矩阵(V = 5 I + 2 J 向量)得V = 5 I + 2 J 1 0 5 2 0 0 1 0 -5S2,2,C=TVS2,2TV = 0 1 2 0 2 0 0 1 -20 0 1 0 0 1 0 0 1 2 0 -5 = 0 2 -2 0 0 1 x用 y 表示坐标为(x,y)的P点,得出 1 2 0 -5 0 -5S2,2,CA= 0 2 -2 0 = -2 0 0 1 1 1 2 0 -5 1 -3S2,2,CB= 0 2 -2 1 = 0 0 0 1 1 1 2 0 -5 5 5S2,2,CC= 0 2 -2 2 = 2 0 0 1 1 1 ABC的新位置是 A、1(5,-2),B(-3,0),C(5,2)(附) 相对于固定点P(h,k)缩放变换的通用矩阵是 Sa,b,p=TvSa,bT-v 1 0 h a 0 0 1 0 -h = 0 1 k 0 b 0 0 1 -k 0 0 1 0 0 1 0 0 1 A 0 -ah+h = 0 b -bk+k 0 0 15,为什么要使用齐次坐标的表达式?答:为了使各种变换的表示形式一致,从而使变换合成更容易,引入齐次坐标,平移变换为矢量加法,旋转缩放为矩阵的乘法,齐次坐标就是用n+1维向量表示n维向量。一方面可以表示无穷点,一方面是所有几何变换都可以用矩阵乘法来表示,获得平移,旋转,所放的一致性,表示平移 X 1 0 0 X X Y 0 1 0 Y Y Z = 0 0 1 Z * Z 或 P=T*P 1 0 0 0 1 1缩放 X Sx 0 0 0 X Y 0 Sy 0 0 Y Z = 0 0 Sz 0 * Z 或 P=S*P 1 0 0 0 1 1 旋转:绕X轴旋转X 1 0 0 0 X Y 0 cos -sin 0 Y Z = 0 sin cos 0 * Z 或 P=Rx()*P 1 0 0 0 1 1绕Y轴旋转 X cos 0 sin 0 X Y 0 1 0 0 Y Z = -sin 0 cos 0 * Z 或 P=Ry()*P 1 0 0 0 1 1绕Z轴旋转X cos -sin 0 0 X Y sin cos 0 0 Y Z = 0 0 1 0 * Z 或 P=Rz()*P 1 0 0 0 1 16.二次旋转变换为先绕X轴转x,再绕Y轴转y,写出变换矩阵,旋转顺序有影响吗?解:(1)通过组合(连接)两个旋转矩阵,可以得到变换T:(先绕X轴)T=(2)通过的乘积得到矩阵(先绕Y轴)T=这个矩阵和()中的不同,所以旋转的顺序有影响。7.写出关于xy平面的对称镜面反射变换矩阵。进一步,写出点P对任意平面的对称点的变换矩阵。解:(1)由图可知,P(x,y,z)的对称点是P(x,y,-z),其反射变换是M=P (x,y,z)P (x,y,-z)ZXY(2)用一个法向量N和P0(x0,y0,z0)参考点确定一个参考平面.先把问题转换为关于xy平面的镜面反射:将P0 平移到原点使法线向量N平行于xy平面的法线向量K进行关于xy平面的镜面反射变换逆变换步骤和因此,有平移向量V=-x0I-y0J-z0K MN,P0=Tv-1AN-1MANTv 若N=-n1I-n2J-n3K,则N= XZYPP所以 第8页8 投影有多少种,各自的定义是什么?透视投影:视平面上的点由通过物体上的点和投影中心点的投影线决定 平行投影(投影方向预先设定了):正投影:投影方向垂直于视平面;斜投影:投影方向不垂直于视平面。9 四边形顶点坐标为A(2,4,1),B(4,4,1),C(2,8,5),D(4,8,5),求它的三个正投影视图。10 写出投影到视平面z=d,投影中心在原点的单点透视投影变换矩阵。解:平面z=d平行于侧面(且距离为d个单位)。因此视平面的法线向量N和xy平面的法线向量K一致,即N=K。选择R0(0,0,d)作为视见参考点,可以确定参数:N(n1,n2,n3)=(0,0,1) R0(x0,y0,z0)=(0,0,d) d0+n1x0+n2y0+n3z0=d 投影矩阵是: Perk,R0=11线段L1=I(-4,7),(-2,10),L2=A(-4,2),B(-1,7),L3=C(-1,5),D(3,8),L4=E(-2,3),F(1,2),L5=G(1,-2),H(3,3),对裁剪窗口 L(-3,1),R(2,6)(2个点为窗口的左下角和右上角),写出各线段每个端点的区域 编码。解:点(X,Y)的区域编码根据下面的模式设置比特1 = sign(yy max)= sign ( y6) 比特3 = sign(xx max)= sign ( x 2)比特2 = sign(y miny)= sign ( 1y) 比特4 = sign(x minx)= sign (3 x) 1 ( a0)此外:sign ( a ) = 0 (a0)100110001010000100000010010101000110因此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;12、对11题,写出裁减算法的主要步骤:(P 99)第六章 真实感图形生成技术1、图形效益的目标是什么? 通过判别当前观察方向下的可见线与可见面,然后只显示可见线和可见面,来消除图形的二义性,构造真实的3D场景;与光照计算,纹理的映射技术相融合,绘制真实感图形。2 消除算法分为哪两大类?各自的特点和运用性如何?你所了解的几种算法分别属于哪类? 分为物体空间算法和像素空间算法。 物体空间算法:精度高,与机器精度相同,用于在对精度要求较高的工程应用方面。(多面体) 像素空间算法:在观看物体的屏幕坐标下实现,它以窗口内的每个像素为处理单元,很粗糙。(工程缓冲)3 写出Roborts消除算法的具体步骤,为什么该算法只适用于凸多面体?步骤:1、对每一个物体进行消去且隐藏面;2、对余下的边与所有其他的物体一一比较,以确定被其他物体所遮挡的部分;3、确定贯穿物体之间的相贯线,方法是保存所有贯穿点,将彼此的贯穿的两物体上的每一贯穿点同两物体上的其他贯穿点一一连接,然后将这些连线对画面上剩下的物体进行消隐判断,其中的可见部分就是贯穿线。4 顶点为A(0,0,1),B(2,0,1),C(1,2,2),D(0,2,1)所构成的四面体,子轴的正向视角,确定能够显示的面。5 对一般的多面体消隐算法遇到的困难是什么?首先是多边形的“深度”问题,特别是当多边形与xy平面是斜交关系时,出了xy平面。第二,如果两个多边形有同样的深度,应先画哪一个?6 深度缓存算法的基本概念和步骤是什么?深度缓存算法是从三维空间象二维空间投影时,进行面消隐的算法,利用被称为Z-buffer的矩阵,对每个像素进行处理,实现面的消除。这里,用depthx,y表示深度缓存数据,用intensityx,y表示图象的桢缓存数据。步骤如:对于画面上的全部像素,depthx,y的值用depthx,y=表示,intensityx,y的值用intensityx,y=B表示,背景的颜色B在初始化时设定用。场景中的各个多边形向画面投影时,寻找多边形区域中所包含的所有像素(x,y)。计算每个像素(x,y)的深度工。如果depthx,y,那么包含这个像素(x,y)的多边形在之前处理过的多边形的内部,表示最接近观测者,这时,7.光源的种类都有什么?环境光、点光源、分布式光源。8.解释术语:反射系数、漫反射系数、透射系数。环境反射系数:Ka. I=KaIa漫反射系数:Kd. I=KdIlCos (兰伯特公式)透射系数:Ks. I=KsIlCosn9.写出Phong光照模型,说明其中各项参量的含义,以及Phong光照模型表达了什么环境。解:兰伯特反射光照模型:I=KaIa+KdIlCos,0 ,0Ka+Kd1Phong光照模型 I=KaIa+KdIlCos+KsIlCosn 环境:简单光照模型中考虑对环境光的反射分量,对特定光源的漫反射分量和镜面反射分量。a. 在点光源照射在表面时,镜面反射光线不完全集中在一个方向上,是什么原因?解:一般的,表面可理解为由许多朝向不同的微小平面构成,入射光经许多的微小平面反射后形成反射光不再是单向的,而是分布于理想镜面反射方向的范围。b. 当光源距平面比较远时,表面上的漫反射变化很小,为什么?(根据Phong光照模型)解:一个多边形表面的所有点有相同的法线向量N。当光源相对较远时,从一个表面点到另一个表面的L变化很小。(如果光源非常近,比如太阳,那么L变成了一个恒定的量)。从而L、N在每个多边形表面内变换很小,成为Phong公式中确定漫反射的项。 c. 分析Whitted光照模型,为什么说它是全局光照模型?(直接光源和问题光源)解:Whitted光照模型考察了光在物体间往复反射,折射引起的照明效果。 全局光照模型除了处理光源发出的光以外,还考虑其他辅助光的影响,如光线透明或半透明的物体,以及光线从一个物体表明反射到另一个表面等。所以d. 如果表明的漫反射系数是Kd=(0.8,0.4,0),光源是蓝色,表面颜色是什么?光源是品红色时,表面颜色是什么?解:蓝色黑色(物体不反射蓝光) 品红色红色(物体只反射品红色光的红色部分)e、写出生成一个圆球真实感显示图的方法,包括计算解析公式和编程方法。f、分析光线跟踪算法的目的和原理,对点光源和透明立方体,建立它的光线跟踪路径。(1) 光线跟踪算法利用了光线的可逆性原理,不是从光线出发,而是从视点出发,延视线方向进行跟踪,光线跟踪在本质上是一个递归算法,为全局光照模型提供了一种简单有效的创新手段。主要是模拟自然界中光线的传播,以实现场景中交相辉映的景物、阴影、透明等高度真实感图像的显示。g、什么是纹理映射函数。映射纹理伸展或收缩纹理1周来适合物体的形状纹理图在坐标为(u,w)的二维空间中描述,该空间称为纹理空间,用参数(,)表示物体的表面从纹理空间的映射到物空间有如下定义:=f(u,w), =q(u,w), 反映射为:u=r(, ), w=s(, ) 这些都称为映射函数.第七章 曲线与曲面1、 什么是曲线的参数表示法?为什么使用参数表示法便于绘制曲线?(1) 即曲线上任意一点的坐标均表示成给定参数的函数。假定用t表示参数,平面曲线上任一点p可表示为:p(t)=x(t),y(t)(2) 为计算机处理方便,将曲线写成参数方程形式,其优越性在于:a、 可以满足几何不变性的要求b、 有更大的自由度来控制曲线的形状c、 对参数表示的曲线可对其参数的方程直接进行几何变换。d、 便于处理斜率为无穷大的情形,不会因此而中断计算e、 坐标点歌分量的表示十分里的,这使我们可以用数学公式去处理几何分量,同时可以使曲线和曲面具有统一的表示形式f、 规格化的参数变量t0,1,使其相应的几何分量是有界的,而不必用另外的参数去定义其边界。他便与曲线的分界分片描述,易于实现光顺连接。g、 易于用向量和矩阵运算,从而大大简化了计算。 122.对给定参数方程x=x(t),y=y(t),z=z(t)的曲线,写出绘制曲线的伪码.3.写出Bezier曲线的基本方程,并写出n=2,3,4时的特例.解:将Bezier曲线段以参数方程表示为Q(t)= t0,1这是1个n次多项式,有n+1项,Pi表示特征多变形n+1个顶点的位置向量 Bi,n(t)= i=0,1,、,n (i=0,t=0时,=1,0!=1)n=1时,有两个控制点Q(t)=(1-t)+t t0,1 一次Bezier曲线是连接起点和终点的直线段n=2时,有三个控制点Q(t)=+2t(1-t)+ =()+2(t+ t0,1二次Bezier曲线为抛物线,其矩阵形式为Q(t)= t0,1n=3时,有四个控制点Q(t)= = 其矩阵形式为Q(t)= t0,1n=4时,有五个控制点Q(t)= 134.对由点P0,P1,P2构成2次Bezier曲线P(t),证明P(12)位于P1到P0P2线段中点的一半. 5.给出3个点(2,1),(4,-4),(9,2),写出这三点定义的Bezier曲线.=11 0 14 6.什么是二次样条曲线?有什么特点?7.曲线曲面的连续性如何定义?第八章 几何造型基础1 几何体的基本元素有哪些?请分别进行说明。答:包括点,线,面,环,体点:边的端点或曲线的整值点,只能存在于实体边界上。线:由端点或曲线方程定义。面:实体包含各个面,具有方向性,用一个外环和若干内环界定其有效范围。环:是有序有向边组成的面上封闭曲线,环上各条边

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论