视频加载失败

课程

9428 字
约 27 分钟

《计算机图形学》课件题目集(含解析与答案)

计算机图形学exercises/rainclass·更新于 2026-09-15

《计算机图形学》课件题目集(含解析与答案)

这里是为您整理的《计算机图形学》课件题目集,已转换为清晰美观的 Markdown 格式,并附带了详细的解析与参考答案。对于无法完全文字化的图片题,已做特殊标注说明。


一、 选择题集锦

1. 下列两种显示方式中,哪种方式是现有显示器所采用的? [ B ]

  • A. 屏幕像素按显示对象的路径来扫描显示(随机扫描 / 矢量显示)
  • B. 屏幕像素按固定路径来扫描,扫描到显示对象位置时显示该像素(光栅扫描)

【解析】 现代显示器(如 LCD、OLED 等)均采用光栅扫描方式,即像素按固定的行列网格和刷新率逐行/隔行扫描。

2. 灰度等级为 256 级,分辨率为 2048×10242048 \times 1024 的显示器,至少需要的帧缓存容量为: [ C ]

  • A. 512KB512\text{KB}
  • B. 1MB1\text{MB}
  • C. 2MB2\text{MB}
  • D. 3MB3\text{MB}

【解析】 灰度等级为 256 级需要 log2(256)=8=1B\log_2(256) = 8\text{位} = 1\text{B} 的存储空间。 帧缓存容量 = 像素总数 ×\times 每个像素的字节数 = 2048×1024×1B=2,097,152B=2MB2048 \times 1024 \times 1\text{B} = 2,097,152\text{B} = 2\text{MB}

3. 下面哪些学科与图形学紧密相关? [ A, B, C, D ]

  • A. 图像处理(Image Processing)
  • B. 机器视觉(Computer Vision)
  • C. 人工智能(Artificial Intelligence)
  • D. 计算几何(Computational Geometry)

【解析】 这些学科与计算机图形学互相渗透、交叉紧密。例如计算几何提供理论基础,图像处理和机器视觉与图形学互为逆过程,现代图形学也大量引入了人工智能(如神经渲染)。

4. 用射线法判断一个点是否在多边形内时,若该射线与多边形的交点数目为______,则该点在多边形内部。 [ A ]

  • A. 奇数
  • B. 偶数

【解析】 根据奇偶规则(Even-Odd Rule),从任意点向无穷远处引一条射线,若与多边形边界的交点数为奇数,则点在内部;若为偶数,则点在外部。

5. 多边形的 xx-扫描线算法计算扫描线与多边形边的交点个数时,若交点是多边形的顶点,则交点个数取值正确的情况是: [ A, B, C, D ]

  • A. 两边都在扫描线的同一侧,计数 2 次
  • B. 两边都在扫描线的上方,计数 2 次
  • C. 两边都在扫描线的下方,计数 0 次
  • D. 两边另外两个顶点的 yy 值有 1 个大于此扫描线的值,计数 1 次

【解析】 处理多边形顶点处的交点时,若两相邻边在扫描线同侧(属于极值点,对应 A、B、C 的描述),则算作 0 次或 2 次(不改变奇偶性);若两相邻边分居扫描线两侧(对应 D 单调延伸),则算作 1 次。


扫描线 3 与多边形求交图

6. 对计算机而言,如果要求出扫描线 3 与多边形的 4 个交点,需要它与多边形求交几次? [ D ]

  • A. 4 次
  • B. 5 次
  • C. 6 次
  • D. 7 次

【解析】 该多边形共有 7 条边。在最原始 of 求交算法中,每一条扫描线都需要与多边形的所有边进行求交测试,因此是 7 次。这也是引入活性边表(AET)的原因。

7. 直线光栅化算法中,利用直线微分方程来绘制的算法是: [ A ]

  • A. DDA 直线算法
  • B. 中点线算法
  • C. Bresenham 直线算法
  • D. 以上都不是

【解析】 DDA 算法全称为数值微分分析法(Digital Differential Analyzer),直接从直线的微分方程 dy=kdxdy = k \cdot dx 导出。

8. 直线光栅化算法中,利用显示器光栅的特点来绘制直线的算法有: [ B, C ]

  • A. DDA 直线算法
  • B. 中点线算法
  • C. Bresenham 直线算法
  • D. 以上都不是

【解析】 中点画线法和 Bresenham 算法充分利用了光栅像素网格的离散特性,通过决策变量来判断下一个像素点应该选在上个像素的哪一个相邻网格。

9. 直线光栅化算法中,可以通过优化去掉浮点运算来绘制直线的算法有: [ B, C ]

  • A. DDA 直线算法
  • B. 中点线算法
  • C. Bresenham 直线算法
  • D. 以上都不是

【解析】 DDA 算法每一步都需要做浮点数加法。而中点线算法和 Bresenham 算法通过整数乘法放大决策变量,可以完全消除浮点运算,实现纯整数加减和位移。

10. 直线光栅化中,任意 kk 值的一般直线绘制建议采取的策略是: [ B ]

  • A. 根据斜率 kk 的情况,分情况绘制
  • B. 将所有斜率 kk 的情况,转化为 0<k<10 < k < 1 情况
  • C. 采用中点线方法来绘制
  • D. 以上都不对

【解析】 图形学中标准的光栅化直线算法通常只针对 0k10 \le k \le 1 编写,对于其他象限和斜率的直线,通过坐标轴对换(如 xxyy 换)或取反,将其对称转换0<k<10 < k < 1 的基础情况中处理。


11. 下列是常见点阵区域表示方法的是______。 [ B, D ]

  • A. 几何表示
  • B. 内点表示
  • C. 函数表示
  • D. 边界表示

【解析】 点阵多边形的经典区域表示法有两种:内点表示法(网格内所有像素具有相同颜色)和边界表示法(具有相同颜色的边界像素包围圈)。

网格像素连通图

12. 下面选项中若所有黑色点表示同一个区域,则哪些是四连通区域? [ A, C ]

  • A. 包含白圆和白三角边界的网格图
  • B. 包含两个对角分布的 3×33 \times 3 黑色方块图
  • C. 包含一个整体 3×33 \times 3 黑色方块图

【解析】

  1. 图 A 内部是一个完整的黑色矩形块,内部像素通过上下左右相连,属于四连通。
  2. 图 B 两个方块只有对角顶点接触(八连通),在四连通意义下它们互不相连,属于两个区域。
  3. 图 C 黑色像素连接紧密,是标准的四连通区域。

13. 下面有关区域填充算法中,正确的论述有______。 [ C, D ]

  • A. 四连通算法可以填充八连通区域
  • B. 四连通算法的数据结构采用的是队列结构
  • C. 区域填充算法只改变填充颜色,没有改变区域表示方法
  • D. 区域填充算法要求区域必须是封闭的

【解析】 区域填充必须要在一个封闭的边界内进行(D 对)。它仅改变像素的颜色值,不改变区域在点阵中的几何表达形式(C 对)。四连通填充算法在填充八连通区域时,可能会由于“漏气”导致溢出到区域外部,因此 A 错误。

14. 下面属于简单种子填充算法的特点有______。 [ A, B, C, D ]

  • A. 区域内每个像素都会至少出入栈一次
  • B. 区域内有些像素会出入栈多次
  • C. 堆栈长度会随着区域变大而变大
  • D. 填充算法需要给定种子点作为起点

【解析】 简单的递归/堆栈种子填充算法会检查像素的四邻域,会导致很多像素被重复压栈(B 对),区域越大栈越深(C 对),且必须提供初始种子点(D 对)。

15. 下面有关扫描线种子填充算法的描述中,正确的论述有______。 [ A, B ]

  • A. 效率比简单种子填充算法要高
  • B. 一次填充一段区间,而不是一个像素
  • C. 与简单种子填充算法相比,堆栈长度要小,且不会随着区域变大而变大
  • D. 填充算法按扫描线进行填充,不需要给出种子点

【解析】 扫描线种子填充法是一行行区间填充的,效率极高(A、B 对)。虽然其栈大小远小于简单种子填充,但栈长度依然会随着区域复杂度和大小有一定程度增加(C 不严谨)。另外,该算法仍然需要一个初始种子点来启动(D 错)。


16. 根据存储与显示方式的不同,字符一般有如下类型: [ C, D ]

  • A. ASCII 字符
  • B. 汉字字符
  • C. 点阵字符
  • D. 矢量字符

【解析】 注意题目提问的前提是“根据存储与显示方式的不同”。字符在计算机图形学中按存储 and 绘制原理分为点阵字符(Bitmap font)和矢量字符(Vector font)。ASCII 字符和汉字字符是按编码和内容分类的。

17. 下列哪种现象不是走样现象? [ D ]

  • A. 倾斜的直线和区域的边界处呈现阶梯状、锯齿状的效果
  • B. 本应均匀间隔的纹理图案,造成了不均匀的间隔显示
  • C. 一些非常细的线或很小的点由于低于分辨率而不能被显示出来
  • D. 当比较接近水平的线与比较接近垂直的线汇合时,汇合处外角有缺口

【解析】 选项 A(锯齿)、B(莫尔条纹/栅格伪影)、C(由于采样频率低导致的细节丢失/过虑)都是数字图像中经典的走样(Aliasing)表现。D 属于线宽处理或转角拼接处的几何连接算法问题,不属于走样。

18. 下面哪些方法不能达到反走样效果? [ B ]

  • A. 提高屏幕分辨率
  • B. 增强图像的显示亮度
  • C. 把像素当作平面区域进行采样
  • D. 采用滤波器对像素进行加权区域采样

【解析】 提高分辨率(A)是硬件反走样;区域采样(C)和加权区域采样(D)是软件层面的经典超采样/多采样反走样技术。增强图像亮度(B)完全无法改变锯齿和失真。

19. 有关光栅图形扫描显示器叙述错误的是: [ C ]

  • A. 光栅扫描图形显示器是画点设备
  • B. 在某些光栅扫描系统中有逐行扫描和隔行扫描两种方式
  • C. 光栅扫描图形可以作无级放大,而不会出现锯齿状
  • D. 光栅图形扫描显示器刷新频率不能太低,否则会出现闪烁现象

【解析】 光栅图形是基于像素点阵的,放大后像素点会变大,必然会出现明显的锯齿和模糊。只有矢量图形才能做到无级放大而不失真。

20. 用编码裁剪法(Sutherland-Hodgman / Cohen-Sutherland)裁剪二维线段时,判断下列直线段采用哪种处理方法。假设直线段两个端点 MMNN 的编码为 10001001(按 TBRL 顺序): [ B ]

  • A. 直接保留
  • B. 直接舍弃
  • C. 对 MNMN 再分割求交
  • D. 不能判断

【解析】 两个端点的编码进行按位与(AND)运算:1000 & 1001 = 1000。 结果不为 0000,说明这两个端点同时位于裁剪窗口的同一侧外部(此处同在上方 Top),根据算法规则,该线段属于“完全不可见”,应直接舍弃


21. 直线的编码裁剪算法中,判断直线是否位于同一边界外侧的表达式是什么? [ C ]

  • A. (c1 && c2) != 0
  • B. (c1 || c2) != 0
  • C. (c1 & c2) != 0
  • D. (c1 | c2) != 0

【解析】 判断是否在同侧外部,使用按位与运算符 &。若 c1 & c2 != 0,则代表两端点至少有一位同为 1(即在窗外的同一侧)。

嵌套矩形窗口图

22. 最外层的窗口设为显示器窗口大小,用三类大小的窗口采用编码裁剪算法裁剪直线,其效率排序应为: [ A ]

  • A. 3 > 1 > 2
  • B. 3 > 2 > 1
  • C. 1 > 2 > 3
  • D. 2 > 1 > 3

【解析】 本题考察编码线段裁剪算法(如 Cohen-Sutherland 算法)的效率与裁剪窗口大小之间的关系。

1. 核心原理分析 Cohen-Sutherland 算法的核心优势在于:通过对线段端点的编码进行位运算(如逻辑与、逻辑或),快速判断线段是否可以“完全保留”或“完全弃置”,从而避免复杂的求交点计算。

  • 窗口 3(最大窗口,等同于整个显示器大小): 绝大多数在屏幕上生成的直线段,其端点坐标都会直接落在窗口 3 的内部。当两端点编码都为 0000 时,通过一次简单的按位或运算即可判断该线段“完全可见”,无需进行任何求交计算。因此,窗口越大,全保留概率越高,求交次数越少,效率最高
  • 窗口 1(最小窗口): 由于窗口 1 非常小,随机生成的线段两端点很容易同时落在窗口的同一侧外部(例如都在左外侧)。当两端点编码进行按位与(&)结果不为 0 时,可以通过一次位运算快速判断该线段“完全不可见”(简易弃置),同样无需计算交点。因此其触发“完全弃置”的概率较高,效率次之
  • 窗口 2(中等大小窗口): 窗口 2 的大小适中,这意味着线段“穿过窗口边界”的概率最大。此时线段既不能被“完全保留”,也不能被“完全弃置”,算法不得不频繁地进入循环去计算线段与边界的交点。求交点涉及浮点数乘除法运算,在图形学中是非常耗时的,因此导致效率最低

综上,效率从高到低的正确排序为:3 > 1 > 2。因此本题选 A。

23. 直线裁剪的 Liang-Barsky 算法中,“入点”的参数 umax=max(0,ukpk<0)u_{\max} = \max(0, u_k \mid p_k < 0);“出点”的参数 umin=min(1,ukpk>0)u_{\min} = \min(1, u_k \mid p_k > 0)。下面错误的说法是: [ D ]

  • A. umax>uminu_{\max} > u_{\min} 时,直线段位于窗口外
  • B. pk<0p_k < 0 时,umaxu_{\max} 不小于直线与窗口左边界(或延长线)的交点参数
  • C. pk>0p_k > 0 时,uminu_{\min} 不大于直线与窗口左边界(或延长线)的交点参数
  • D. 直线段平行于坐标轴时,umaxuminu_{\max} \le u_{\min}

【解析】 当直线段平行于坐标轴时,某个 pk=0p_k = 0。如果此时对应的 qk<0q_k < 0,说明直线完全在窗口外,算法会直接终止;此时无须满足 umaxuminu_{\max} \le u_{\min}。因此 D 的表述过于绝对。

24. 在多边形的 Sutherland-Hodgman 算法(逐边裁剪算法)中,根据多边形的边(从顶点 SS 到顶点 PP)与裁剪线(窗口的边)的位置关系,有不同的输出。请问下列哪种说法是错误的? [ A ]

  • A. S 和 P 均在可见的一侧,则输出 S 和 P
  • B. S 和 P 均在不可见的一侧,则不输出
  • C. S 在可见一侧,P 在不可见一侧,则输出(线段 SP 与裁剪线的)交点
  • D. S 在不可见的一侧,P 在可见的一侧,则输出(线段 SP 与裁剪线的)交点和 P

【解析】 根据 Sutherland-Hodgman 算法规则:若 SSPP 均在可见一侧,只输出终点 PP,不输出起点 SS(因为 SS 作为上一条边的终点已经在上一步输出过了)。

25. 齐次坐标可以将 nn 维空间的一个点向量唯一的映射到 n+1n+1 维空间中。 [ B ]

  • A. 正确
  • B. 错误

【解析】 齐次坐标的映射不是唯一的。在齐次坐标中,(x,y,z,w)(x, y, z, w)(hx,hy,hz,hw)(hx, hy, hz, hw)h0h \ne 0)表示三维空间中的同一个点。


26. 旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变。 [ A ]

  • A. 正确
  • B. 错误

【解析】 旋转变换属于刚体变换 / 欧氏变换(Rigid Transformation),它保持了图形的拓扑结构、长度、夹角和面积完全不变。

27. 使用下列二维图形变换矩阵,产生的变换结果是什么? [ D ]

  • A. 沿 X 轴方向平移 2 个单位
  • B. 图形沿 X、Y 轴方向各平移 1 个单位
  • C. 先沿 X、Y 轴方向各平移 1 个单位,再沿 X 轴方向放大 2 倍
  • D. 先沿 X 轴方向放大 2 倍,再沿 X、Y 轴方向各平移 1 个单位

【解析】 将该矩阵分解为仿射矩阵的标准形式:

[201011001]=[101011001][200010001]\begin{bmatrix} 2 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}

作用于右侧的列向量时,先进行右侧的缩放(X 轴放大 2 倍),再进行左侧 of 平移(X、Y 各平移 1 个单位)。

28. 下列两重组合变换中,可互换(满足交换律)的是哪个? [ C ]

  • A. 旋转、对称
  • B. 旋转、平移
  • C. 缩放(Sx=SyS_x = S_y)、旋转
  • D. 缩放(Sx=SyS_x = S_y)、平移

【解析】 均匀缩放(Sx=SyS_x = S_y)是一个各向同性的标量放大,它与任何旋转矩阵都满足矩阵乘法交换律。而平移与旋转、非均匀缩放通常不满足交换律。

29. 下面各种变换中,变换前后维度保持不变的是______。 [ A, B, D ]

  • A. 模型变换(Modeling Transformation)
  • B. 观察变换(Viewing Transformation)
  • C. 投影变换(Projection Transformation)
  • D. 视口变换(Viewport Transformation)

【解析】

  1. 模型变换、观察变换是在 3D 空间内的变换,维度不变;视口变换是在 2D 屏幕空间内的平移缩放,维度不变。
  2. 投影变换(如透视投影、正交投影)的作用是将三维场景投影降低到二维裁剪平面上,其核心本质是降维

30. 下列有关透视投影的叙述,错误的是什么? [ A ]

  • A. 至多只能有三个灭点
  • B. 投影后会发生变形
  • C. 投影线过视点
  • D. 视觉效果比平行投影更具真实感

【解析】 灭点(Vanishing Point)的数量取决于物体坐标轴与投影平面的夹角。虽然常规的三维立方体有三个主轴方向(对应 1、2、3 点透视),但如果场景中存在不平行于主轴的任意方向复杂多边形或线条,透视投影可以产生无数个灭点。


31. 空间相互平行的直线,在透视投影之后可以不平行。 [ A ]

  • A. 正确
  • B. 错误

【解析】 正确。在透视投影中,如果不平行于投影平面的空间平行线,投影后都会汇聚于一点(即灭点),从而不再平行。

一点透视图

32. 下面三张图中,属于“一点透视”的是______。 [ B ]

  • A. 建筑斜角外观手绘图
  • B. 室内走廊沿中心延伸实景图
  • C. 仰视高楼大厦实景图

【解析】 室内图 B 的所有平行于视线的视廊线条全部汇聚到正前方中心的一个灭点,属于典型的一点透视(平行透视)。

两点透视图

33. 下面三张图中,属于“两点透视”的是______。 [ A ]

  • A. 萨伏伊别墅正面/侧面斜视全景图
  • B. 室内走廊实景图
  • C. 仰视高楼大厦实景图

【解析】 别墅图 A 展现了建筑物的两个侧面,两组水平平行线分别向左、右两侧的两个灭点汇聚,属于典型的两点透视(成角透视)。

三点透视图

34. 下面三张图中,属于“三点透视”的是______。 [ C ]

  • A. 双层沿街建筑鸟瞰效果图
  • B. 室内走廊实景图
  • C. 包含垂直轴汇聚线的摩天大楼俯瞰/仰视图组

【解析】 图像 C 的大楼除了有左右两组水平线汇聚点外,垂直方向的高大墙面线条也向天空或地面上的第三个灭点汇聚,属于典型的三点透视。

物体空间消隐

35. 设场景中有 kk 个多边形面,显示区域为 m×nm \times n 个像素,则“物体空间消隐”计算量与什么有关? [ A ]

  • A. kk
  • B. m,nm, n
  • C. k,m,nk, m, n
  • D. 以上都不对

【解析】 物体空间消隐算法(Object-space algorithms)在连续的真实三维空间中进行,通过解析几何直接计算多边形面片之间的相互遮挡和求交,其计算复杂度只与场景中的几何复杂度(面片数 kk)的平方成正比,与屏幕分辨率(m,nm, n)无关


图像空间消隐

36. 设场景中有 kk 个多边形面,显示区域为 m×nm \times n 个像素,则“图像空间消隐”计算量与什么有关? [ C ]

  • A. kk
  • B. m,nm, n
  • C. k,m,nk, m, n
  • D. 以上都不对

【解析】 图像空间消隐算法(Image-space algorithms,如 Z-buffer、光线投射法)是在离散的屏幕像素网格上进行的。需要对每个像素(共 m×nm \times n 个)遍历或投射测试每一个多边形面片(共 kk 个),因此计算量与 k,m,nk, m, n 均有紧密关联。

37. 当多边形面片数量比屏幕分辨率 m×nm \times n 大很多时,图像空间与物体空间两类消隐算法中,更快的是: [ A ]

  • A. 图像空间
  • B. 物体空间

【解析】 当面片数量 kk 呈海量增长时,物体空间算法的 O(k2)O(k^2) 复杂度会引起计算量爆炸。而图像空间算法(如 Z-Buffer 硬件消隐)的开销主要受制于固定的屏幕分辨率 m×nm \times n,面对超高复杂度场景时其运行效率远高于物体空间算法。

38. ① 光线未碰到任何物体; ② 光的光强度已经很弱; ③ 光线的深度已经很深; ④ 光线遇到背景; ⑤ 光线遇到某物体。 [ ]

  • A. ①②
  • B. ①②③
  • C. ①②③④
  • D. ①②③④⑤

【解析】

  1. 当光线射向无穷远未碰撞任何物体(①)或击中设定的背景(④)时,直接结束跟踪返回背景色。
  2. 为了防止无限反射导致的死循环 and 无效计算,算法设置了衰减阈值(光强太弱时终止,②)和最大反弹次数上限(深度太深时终止,③)。
  3. 遇上物体(⑤)时,必须继续产生反射和折射二次光线进行跟踪,不能终止。
Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录