计算机图形学-习题库全解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、画直线的算法有哪几种?画圆弧的算法有哪几种?
c1)逐点比较法;(2)数值微分法;(3)Bresenham算法。
画弧线的常用方法有:(1)逐点比较法;(2)角度DDA法;(3)Bresenham算法。
4、分别写出平移、旋转、缩放及其组合的变换矩阵。
1)平移变换:
其中, , , 是物体在三个坐标方向上的位移量。
2)旋转变换:
绕Z轴旋转的公式为:
绕X轴旋转的公式为:
绕Y轴旋转的公式为:
如果旋转所绕的轴不是坐标轴,设其为任意两点p1,p2所定义的矢量,旋转角度为。则可由7个基本变换组合构成:
1.使p1,点与原点重合;
2.,使轴p1p2落入平面xoz内;
3.,使p1p2与z轴重合;
4.,执行绕p1p2轴的角旋转;
5.,作3的逆变换;
6.,作2的逆变换;
7.作1的逆变换。
3)缩放变换:
其中,,,是物体在三个方向上的比例变化量。记为。
若对于某个非原点参考点进行固定点缩放变换,则通过如下的级联变换实现:
5、如何用几何变换实现坐标系的变换?
坐标系的变换,亦即将某一坐标系lcs1中的点变换为另一个坐标系lcs2下的坐标。若,矩阵的推导分三步。
1)将lcs1中的点变换到世界坐标系的矩阵 ;
x_axis, y_axis, z_axis 为lcs1中x,y,z轴矢量在世界坐标系的表示
org为lcs1中原点在世界坐标系的表示
2)将世界坐标系的点变换到lcs2中的点矩阵 ;
x_axis, y_axis, z_axis 为lcs1中x,y,z轴矢量在世界坐标系的表示
org为lcs1中原点在世界坐标系的表示
a = - x_axis.x * org.x - x_axis.y * org.y - x_axis.z * org.z
b = - y_axis.x * org.x - y_axis.y * org.y - y_axis.z * org.z
c = - z_axis.x * org.x - z_axis.y * org.y - z_axis.z * org.z
6、写出几种线裁剪算法;写出几种多边形裁剪算法。
(1)、矢量裁剪法(2)、编码裁剪法(3)、中点分割裁剪法多边形的裁剪算法:
(1)、逐边裁剪法(2)、双边裁剪法
7、写出Bezier曲线和面片的几种表达形式。
空间给定的n+1个点,称下列参数曲线为n次的Bezier曲线。
其中是Bernstein基函数,即
i = 0,1,…,n
空间给定的(n+1)*(m+1)个点为曲面片的控制顶点(i = 0,1,…,n; j = 0,1,…,m),则下列张量积形式的参数曲面为次的Bezier曲面:
Bezier曲面齐次坐标形式为:
其中为Bernstein多项式。
8、写出B样条的矩阵形式和调和函数。为什么使用非均匀有理B样条?
n+1个控制点 ,K阶(K-1次)B样条曲线的表达式是:
其中是调和函数,按照递归公式可定义为:
其中是节点值,是K阶B样条函数的节点矢量。
非均匀B样条函数的节点参数沿参数轴的分布是不等距的,近年来,它得到了广泛的发展和应用,主要原
因是:
(1).对标准的解析形状(如圆锥曲线,二次曲线,回转面等)和自由曲线,曲面提供了统一的数学表示,无论是解析形状还是自由格式的形状均有统一的表示参数,便于工程数据库的存取和应用。(2).可通过控制点和权因子来灵活的改变形状。3).对插入节点,修改,分割,几何插值等的处理工具比较有利。(4).具有透视投影变换和仿射变换的不变性。(5).非有理B样条,有理及非有理Bezier曲线,曲面是NURBS的特例表示。
9、简述边界表示法(BREP)实体构造表示法(CSG)。
边界表示法是用实体的表面来表示实体的形状,它的基本元素是面、边、顶点。它以欧拉公式作为理论基础,要求实体的基本拓扑结构符合欧拉公式。目前采用的比较多的数据结构是翼边数据结构和半边数据结构(又称对称数据结构)。实体构造表示法的基本思想是将简单的实体(又称体素)通过集合运算组成所需要的物体。其中,集合运算的实现过程由一棵二叉树来描述,二叉树的叶子节点表示体素或者几何变换的参数,非终端节点表示施加于其子结点的正则集合算子或几何变换的定义。
10、写出透视变换矩阵和各种投影(三视图、正轴测和斜投影)变换矩阵。
透视变换矩阵形式为:
主视图:俯视图:
侧视图:
正轴测:
斜投影:
11、观察空间有哪些参数?其作用是什么?写出从物体空间坐标系到观察空间坐标系转换矩阵。
参数名称作用
VRP 观察参考点确定观察坐标系原点
VPN 观察平面法向确定观察平面法向
VUP 观察正向确定观察平面上v轴的方向
F 前截面距离确定前截面位置
B 后截面距离确定后截面位置
Pt 投影类型定义投影是平行投影还是透视投影
PRP 投影参考点确定投影中心或投影方向
Umin,Umax,Vmin,Vmax 观察窗口在观察平面上定义观察窗口
从物体空间坐标系到观察空间坐标系的转换矩阵:
12、分别写出对于透视投影和平行投影的从裁剪空间到规范化投影空间的转换矩阵。平行投影:Tvcper=T3T4T5parT6par
透视投影:Tvcper=T3T4T5per
13、写出从规范化投影空间到图像空间的转换矩阵。
14、写出光线与几种常见物体面的求交算法。
假设光线射线定义为X=Dt+E (t>=0)
其中,E=(e1,e2,e3)为射线起点,D=(d1,d2,d3)为射线方向,||D|| = 1,X=(x,y,z)为射线上任意点。1)与多边形求交算法
假设多边形所在的平面方程为
ax+by+cz+d = 0
把射线参数方程代入平面方程得到:
t0 = - (N * K + d) / (N * D) (N*D<>0)
当N*D = 0时,射线和多边形平行;当N*D<>0,交点为X0 = Dt0 + E。这时,还要判断交点是否在多边形上。判断时,只要把交点和多边形投影到某个坐标平面上判断即可。
2)与球面求交算法
设球心在P0(x0,y0,z0),半径为r的球面方程为
(P – P0) * (P – P0) = r * r
代入射线方程,有
at*t + bt + c = 0
其中a = D*D,b = 2D *(E-P0),c = (E-P0) * (E-P0) – r * r
当b*b-4ac<0时,无交点。否则,射线与球面交于两点,由求根公式可以求出。
3)与柱面求交算法
一个底面中心为P0,对称轴方向为AXIS,半径为r,高为h的圆柱定义如下:
(P – P0) * (P- P0) – (AXIS * (P – P0)) * (AXIS * (P – P0)) – r * r <= 0
AXIS * (P – P0) >= 0
AXIS * (P – P0) <= 0
其中,P1 = P0 + h * AXIS
把射线方程代入第一式,并改为不等式,得到:
at * t + 2bt + c = 0
其中 a = 1 – (AXIS * D) * (AXIS * D)
b = D * (E – P0) – (AXIS * D) X (AXIS * (E – P0))
c = (E – P0) * (E – P0) – (AXIS * (E – P0)) – r * r
当b * b –ac >= 0时,可以由求根公式求出解。
求出t以后,还要看是否满足后面两个不等式,才能决定是否在圆柱面上。
15简述消隐算法的分类。
根据消隐空间的不同,消隐算法可分为两类:
(1)物体空间的消隐算法:物体空间是物体所在的空间,即规范化投影空间。这类算法是将物体表面上的K个多边形中的每一个面与其余的K-1个面进行比较,精确求出物体上每条边或每个面的遮挡关系。计算量正比于K2。(2)图象空间的消隐算法:图象空间就是屏幕坐标空间,这类算法对屏幕的每一象素进行判断,以决定物体上哪个多边形在该象素点上是可见的。若屏幕上有m×n个象素点,物体表面上有K个多边