物体表面的颜色由:物体本身的几何形状、物体表面的特性、照射物体的光源、物体与光源的相对位置、物体周周的环境等因素所决定。
24.如何在光栅扫描图形显示器上显示真实感图形?
要在光栅扫描图形显示器上显示真实感图形即:充分考察上述影响物体外观的因素,建立合适的光照模型,并通过显示算法计算在显示屏上各象素点的RGB的取值。
25 简单光反射模型模拟了怎样的光照效果?
简单光反射模型模拟光的是点光源照射到非透明体物体表面时,产生的光反射效果。
26.反射光是由哪三部分组成?
反射光由漫反射光、环境反射光和镜面反射光三部分组成。
27. 什么是漫反射光?它有何特点?如何计算漫反射光的强度。
当光线照射到一个粗糙的、无光泽的表面上时,光线沿各个方向都作相同的反射,从任何角度去看这种表面都有相同的亮度,这种反射表现为漫反射。其特点是:光源来自一个方向,反射光均匀地射向各个方向。物体表面点P处的漫反射光的强度可以用下式计算:
28. 什么是环境光?它有何特点?如何计算环境反射光的强度。
环境光是光在物体和周围环境(如墙)之间多次反射的结果,它不是直接来自光源,而是来自周围的环境对光的反射。环境光的特点是:照射在物体上的光来自周围各个方向,又均匀地向各个方向反射。环境光的光强可用下式计算:
29. 什么是镜面反射光?它有何特点?如何计算镜面反射光的强度。
镜面反射的特点是:光源来自一个方向,反射光集中在反射方向。
一个理想的光泽表面,仅仅在反射角等于入射角时,光线才会被反射。只有在反射方向上,观察者才能看到从镜面反射出来的光线,而在其它方向都看不到反射光。
非理想的反射面,镜面反射光的强度就会随α角的增加而急剧地减少,但观察者还是可以在α很小时接收到这种改变了方向的一部分镜面反射光。
镜面反射光的光强可用下式计算:
30. 如何用简单光照模型计算从物体上任一点P处的颜色和亮度I 。
从视点观察到物体上任一点P处的颜色和亮度I应为漫反射光强,环境光反射光强及镜面反射光强的总和,即:
31.请简要说明光线跟踪算法的跟踪终止条件。
光线跟踪本质上是个递归算法,每个象素的光强度必须综合各级递归计算的结果才能获得。光线跟踪结束的条件有三个,光线与光源相交、光线与背景相交以及被跟踪的光线对第一个交点处的光强度作用趋近于0。
32.粒子系统的基本思想
粒子系统的基本思想是将许多简单形状的微小粒子作为基本元素聚集起来形成一个不规则的模糊物体,从而构成一个封闭的系统 ---- 粒子系统。粒子系统并不是一个简单的静态系统,随着时间的推移,系统中已有粒子不仅不断改变形状、不断运动,而且不断有新的粒子加入,并有旧的粒子消失。
33.写出生成粒子系统的基本步骤。
生成粒子系统某瞬间画面的基本步骤是: 1) 生成新的粒子并加入系统中; 2) 赋予每一新粒子以一定的属性;
3) 删除那些已经超过其生命周期的粒子;
4) 根据粒子的动态属性对粒子进行移动和变换; 5) 绘制并显示由有生命的粒子组成的图形。
34 .自由曲面的表示通常有哪两种?
自由曲面的表示通常有两种:一种为参数曲面,如Bezier曲面、B样条曲面、NURBS曲面等;另一种为隐式曲面。
35.如何作空间中的点相对于任意平面的对称变换?
当空间中的点相对于任意平面作对称变换时,应先将此平面旋转成与一坐标面相重合,然后运用基本对称变换,最后再将平面反变换会原来的位置。
36.三维空间中,相对于任意点A的比例变换是哪几个基本变换的连乘? 和二维图形一样,是平移变换,比例变换和平移逆变换的连乘:
37.写出从RGB值转换到CMY值的转换
从RGB到CMY的转换
38.写出从CMY值转换到RGB值的转换
把CMY颜色表示转换成RGB
四、综合题:
1、 用Bresenham算法生成椭圆 F(x ,y) 2?a 2y2 ?a2一 时,若: ?b2xb2 ? 0?d1?b2(2xi?3),d1?0d1??22d?b(2x?3)?a(?2yi?2),d1?01i?
在第一象限上半部分误差项递推公式为:
下半部分的递推公式为:
?d2?b2(2xi?2)?a2(?2yi?3),dd2 ??2d?a(?2yi?3),d2?02?
2?0b2(xi?1)?a2(yi?0.5)时,说明从椭圆的上半部分转入下半部分。
请写出画出整个椭圆的算法步骤。
答:算法步骤如下:
1).输入椭圆的长半轴a和短半轴b。
2).计算初始值d=b2+a2(-b+0.25)、x=0、y=b。
3).绘制点(x,y)及其在四分象限上的另外三个对称点。 4).判断d的符号。若d≤0,则先将d更新为d+b2(2x+3),再将(x,y)更新为(x+1,y);否则先将d更新为d+b2(2x+3)+a2(-2y+2),再将(x,y)更新为(x+1,y-1)。 5).当b2(x+1)
d?b2(x?0.5)2?a2(y?1)2?a2b27).绘制点(x,y)及其在四分象限上的另外三个对称点。
8).判断d的符号。若d≤0,则先将d更新为b2(2xi+2)+a2(-2yi+3),再将(x,y)更新为(x+1,y-1);否则先将d更新为d+a2(-2yi+3),再将(x,y)更新为(x,y-1)。 9).当y>0时,重复步骤7和8。否则结束。
2、 已知Bernstain基函数为Bi,n(t)?Cnt(1?t)iin?i,其顶点序列为Pi(i=0,1,….,n),
请写出Besizer曲线的参数方程。另外,请证明以下一阶导数:
Bi?,n(t)?n(Bi?1,n?1(t)?Bi,n?1(t))
解:Besizer曲线的参数方程为: nP(t)?PiBi,n(t) t?[0,1]
i?0n! i?1n?i?,n(t)?Bk(i?t(1?t)?(n?i)(1?t)n?i?1?ti)i!(n?i)!
n(n?1)!i?1(n?1)?(i?1)??t?(1?t) (i?1)!((n?1)?(i?1))!
n(n?1)!??ti?(1?t)(n?1)?i
i!((n?1)?i)!
?n(Bi?1,n?1(t)?Bi,n?1(t))
?
3、已知三角形ABC各顶点的坐标A(1,2)、B(5,2)、C(3,5),相对直线Y=4做对称变换后到达A’、B’、C’。
试计算A’、B’、C’的坐标值。(要求用齐次坐标进行变换,列出变换矩阵) 解:
(1)将坐标系平移至P1 (0,4)点
?100???TA??010?
??0?41??(2) 以X轴对称
?100???TB??0?10?
???001?(3)将坐标系平移回原处
?100???TC??010?
???041??100???0?10?
(4) 变换矩阵:T=TA*TB*TC= ???081??(5) 求变换后的三角形ABC各顶点的坐标A’、B’、C’
A’:
?X'AY'A?100???1???121??T??121???0?10???161?
??081??XA'=1, Y A'=6
B’:
?X'BYB1???5?100???21??T??521???0?10???561?
???081?XB'=5, Y B'=6
C’:
?X'CY'C?100???1???351??T??351???0?10???331?
??081??XA'=3, Y A'=3
4、已知一直线段起点(0,0),终点(-8,-3),利用Bresenham算法生成此直线段,写出生成过程中坐标点及误差ε的变化情况。并在下面的方格中,标出直线上各点
误差计算公式:误差初值??(x1)?2?y??x???(xi?1)??(xi)?2?y?2?x?(yi)?0 ??(x)??(x)?2?y?(y)?0i?1ii??3?03?Y???1 以X方向计长 解:?X?8?08走步数C=8
∵是第三象限
(0,0)
xi?1?xi?1???(xi?1)?0 ?yi,r?1 ?y??i?1?y?(xi?1)?0?i,r?C=8 x0= 0,y0=0,取点(0,0)
C=7 ε(x1)= 2△Y-△X=6-8=-2<0 x1= x0-1=-1,y1= y0=0 取点(-1,0) C=6 ε(x2)=ε(x1)+2△Y=-2+6=4 x2= x1-1=-2,y2= y1-1=-1 取点(-2,-1) C=5 ε(x3)=ε(x2)+2△Y-2△X=4+6-16=-6<0 x3= x2-1=-3,y3= y2 =-1 取点(-3,-1) C=4 ε(x4)=ε(x3)+2△Y =-6+6=0 x4= x3-1=-4,y4= y3-1=-2 取点(-4,-2) C=3 ε(x5)=ε(x4)+2△Y-2△X=0+6-16=-10<0 x5= x4-1=-5,y5= y4=-2 取点(-5,-2) C=2 ε(x6)=ε(x5)+2△Y=-10+6=-4<0 x6= x5-1=-6,y6= y5=-2 取点(-6,-2) C=1 ε(x7)=ε(x6)+2△Y=-4+6=2 x7= x6-1=-7,y7= y6-1=-3 取点(-7,-3) C=0 ε(x8)=ε(x7)+2△Y+2△X =2+6-16=-8 x8= x7-1=-8,y8= y7=-3 取点(-8,-3)
5、平面上给定三个顶点Qi(i=0,1,2),试构造一条插值这三个顶点的二次Bezier曲线。要求简述基本原理并画出示意图。
解:由曲线端点性质,知可以取Bezier曲线的两端点P0=Q0,P2=Q2,下面构造P1 点: 因为P(t)= P0(1-t)2+ 2P1(1-t)t+ P2t2,令l1=|Q0Q1|,
P1 l2=|Q1Q2|,,则可以取t1=l1/(l1+l2),有:
P(t1)=Q1
Q1
Q0 Q2
这样就可以以P0P1P2这特征多边形画出二次Bezier曲线。
P0 P2
6、已知Bezier曲线上的四个点分别为Q0(120,0),Q1(145,0),Q2(0,45),Q3(0,120),它们对应的参数分别为0,1/3,2/3,1,反求Bezier曲线的控制顶点。 答:提示) C(0) = Q0 = C0, C(1) = Q3 = C3,
C(1/3) = Q1 = C0 * B0,3(1/3) + C1 * B1,3(1/3) + C2 * B2,3(1/3) + C3 * B3,3(1/3), C(2/3) = Q2 = C0 * B0,3(2/3) + C1 * B1,3(2/3) + C2 * B2,3(2/3) + C3 * B3,3(2/3) 联立后两个方程,求解 C1、C2
(l1?l2)2Q1?l22Q0?l12Q2从而可以求得:P 1?2l1l2