视频加载失败

课程

11941 字
约 35 分钟

《计算机图形学》雨课堂随堂测试 - CG-3 光栅图形学

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

《计算机图形学》雨课堂随堂测试 - CG-3 光栅图形学


一、 单选题

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

  • A. 奇数
  • B. 偶数

【解析】 射线法的基本思想是:从被测点引出一条射线,计算它与多边形边界的交点个数。如果交点个数为奇数,说明该点位于多边形内部;如果是偶数(包括 0),则在外部。因此本题选 A。

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

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

【解析】 走样(Aliasing)是由于用离散像素表示连续图形而引起的采样失真。典型的走样现象有:

  • 光栅显示器上倾斜线条的锯齿/阶梯效应(A 属于走样);
  • 纹理图像采样时产生的莫尔条纹/不均匀间隔现象(B 属于走样);
  • 细小物体或细线因低于像素采样分辨率而丢失,产生闪烁或不显示(C 属于走样)。
  • 而 D 选项“汇合处外角有缺口”属于线宽绘制时的线帽(Cap)或连接(Join)风格处理不当导致,并不属于采样的走样失真。因此选 D。

3. 用 DDA 算法绘制直线段 P0(1,1)P1(5,2)P_0(1,1) - P_1(5,2),下面表格给出了绘制点列 (x,y)(x,y) 的变化过程:

xxyy
11
21
42
52

易求得①②处的值分别是: [ C ]

  • A. 2,1
  • B. 3,1
  • C. 3,2
  • D. 4,2

【解析】 直线起点为 (1,1)(1, 1),终点为 (5,2)(5, 2)Δx=51=4\Delta x = 5 - 1 = 4Δy=21=1\Delta y = 2 - 1 = 1。因为 Δx>Δy>0\Delta x > \Delta y > 0,所以以 xx 为步进方向,yy 的增量为 k=Δy/Δx=0.25k = \Delta y / \Delta x = 0.25。 逐步计算点列:

  • x=1x = 1 时,y=1.0y = 1.0,四舍五入后绘制 (1,1)(1, 1)
  • x=2x = 2 时,y=1.25y = 1.25,四舍五入后绘制 (2,1)(2, 1)
  • x=3x = 3 时,y=1.5y = 1.5,按照标准四舍五入(Round-half-up 或 Round-half-even,1.5 均舍入为 2)后绘制 (3,2)(3, 2)
  • x=4x = 4 时,y=1.75y = 1.75,四舍五入后绘制 (4,2)(4, 2)
  • x=5x = 5 时,y=2.0y = 2.0,绘制 (5,2)(5, 2)。 故当 x=3x = 3(即①)时,对应的绘制坐标 y=2y = 2(即②)。本题选 C。

4. 用 Bresenham 算法绘制直线段 P0(1,1)P1(5,2)P_0(1,1) - P_1(5,2),下面表格给出了绘制点列 (x,y)(x,y) 和误差判别项 dd 的变化过程。

xxyydd
11-2
210
3
42-4
52-2

易求得①②处的值分别是: [ B ]

  • A. 1,2
  • B. 2,-6
  • C. 1,-6
  • D. 2,2

【解析】 起点为 (1,1)(1, 1),终点为 (5,2)(5, 2)Δx=4\Delta x = 4Δy=1\Delta y = 1。 误差判别项的初值 d0=2ΔyΔx=2(1)4=2d_0 = 2\Delta y - \Delta x = 2(1) - 4 = -2

  • 初始点:x=1,y=1,d=2x = 1, y = 1, d = -2。因为 d0d \le 0,下一个点 x=2,y=1x = 2, y = 1;新的 d=d+2Δy=2+2=0d = d + 2\Delta y = -2 + 2 = 0
  • 第二步:x=2,y=1,d=0x = 2, y = 1, d = 0。因为 d0d \ge 0,下一个点 yy 需要加 1,即 y=2y = 2,所以 x=3,y=2x = 3, y = 2;新的 d=d+2Δy2Δx=0+28=6d = d + 2\Delta y - 2\Delta x = 0 + 2 - 8 = -6
  • 因此,在第三步 x=3x = 3 时,绘制点为 y=2y = 2(即①),误差判别项 d=6d = -6(即②)。
  • 我们进一步检验:由于 d=6<0d = -6 < 0,下一步 x=4,y=2,d=6+2=4x = 4, y = 2, d = -6 + 2 = -4,与表格第四行完全契合。 故本题选 B。

5. 用中点画线算法绘制直线段 P0(1,1)P1(5,2)P_0(1,1) - P_1(5,2),误差判别项 dd 的初值是: [ A ]

  • A. 2
  • B. 6
  • C. -2
  • D. 0

【解析】 直线斜率 k=Δy/Δx=1/4k = \Delta y / \Delta x = 1/4。 在中点画线算法中,为了避免浮点数运算,通常将判别式乘上 2,其公式为: d0=2ΔyΔxd_0 = 2\Delta y - \Delta x。 这里 Δx=4\Delta x = 4Δy=1\Delta y = 1。 故 d0=2(1)4=2d_0 = 2(1) - 4 = -2。 题目的参考答案给的是 A (2)。我们重新推导中点画线法的构造: 直线方程为 F(x,y)=ax+by+c=0F(x, y) = a x + b y + c = 0,其中 a=y0y1=Δy=1a = y_0 - y_1 = -\Delta y = -1b=x1x0=Δx=4b = x_1 - x_0 = \Delta x = 4。 判别式定义为 d=F(xp+1,yp+0.5)d = F(x_p + 1, y_p + 0.5)。 起点 (1,1)(1, 1) 在直线上,故 F(1,1)=1+4+c=0c=3F(1, 1) = -1 + 4 + c = 0 \Rightarrow c = -3。 初始判别项 d0=F(2,1.5)=2+4(1.5)3=1d_0 = F(2, 1.5) = -2 + 4(1.5) - 3 = 1。 如果采用乘 2 消除小数的方式,判别项变为 d0=2F(2,1.5)=2×1=2d_0 = 2 F(2, 1.5) = 2 \times 1 = 2。 此时判别式初值为 2。因此本题选 A。

6. 活动边表算法中多边形的水平边不装入边表 ET。请对如图多边形,补充完整 ET 和 AET 中几处数据。 [ B ]

多边形 ET 和 AET 示例

①②③④处的值分别为:

  • A. 1,3,0.5,3.25
  • B. 3,1,0.5,3.25
  • C. 1,3,2,3.25
  • D. 3,1,2,3.25

【解析】 活动边表算法的边表(ET)节点格式通常为:[ymax,xymin,1/k,next][y_{\max}, x_{ymin}, 1/k, \text{next}]

  • ①和②是属于某个 ET 节点的参数。由图可知该边对应的 ymaxy_{\max}xyminx_{ymin} 分别是 3 和 1;
  • ③是该边斜率的倒数 1/k=Δx/Δy1/k = \Delta x / \Delta y,根据顶点的坐标计算可得其值为 0.5;
  • ④是扫描线递增时 AET 中 xx 坐标的更新值,其更新计算为 x=x+1/kx' = x + 1/k,算得对应的值为 3.25。 因此选 B。

7. 用 Cohen-Sutherland 编码裁剪算法裁剪下图所示线段 ABAB,首先对线段两端点编码。易知端点 AABB 的编码分别为: [ A ]

线段裁剪端点编码图
  • A. 1010, 0101
  • B. 0101, 1010
  • C. 1100, 0011
  • D. 1001, 0110

【解析】 Cohen-Sutherland 裁剪算法的编码顺序通常为(从高位到低位):上下右左(TBRL)。

  • 裁剪窗口的各个区域编码:
    • 窗口上方区域:T=1T=1,即 1000
    • 窗口下方区域:B=1B=1,即 0100
    • 窗口右侧区域:R=1R=1,即 0010
    • 窗口左侧区域:L=1L=1,即 0001
  • 点 A 位于窗口的右上部(即上方且右侧),其编码为 10000010=10101000 \mid 0010 = 1010
  • 点 B 位于窗口的左下部(即下方且左侧),其编码为 01000001=01010100 \mid 0001 = 0101。 因此选 A。

8. 用 Cohen-Sutherland 编码裁剪算法裁剪下图所示线段 ABAB,端点编码后,从端点 AA 开始顺序考察与各边交点。P,Q,RP, Q, R 被求出的顺序是: [ C ]

线段裁剪求交点图
  • A. P, Q, R
  • B. P, R, Q
  • C. R, P, Q
  • D. R, Q, P

【解析】 在计算机图形学的 Cohen-Sutherland 编码线段裁剪算法中,窗口的边界通常定义为:

  • 左边界 xmin=0x_{\min} = 0,右边界 xmax=2x_{\max} = 2
  • 下边界 ymin=0y_{\min} = 0,上边界 ymax=2y_{\max} = 2

根据题目要求,从端点 A(3,3)A(3,3) 开始顺序考察与各边交点。我们可以通过算法的裁剪步骤来推导 P,Q,RP, Q, R 的求出顺序。

1. 计算端点编码 (Outcode) 编码对应的 4 位二进制从高到低通常为:[上, 下, 右, 左] (Top, Bottom, Right, Left)。

  • A(3,3)A(3, 3):由于 y>2y > 2x>2x > 2,因此上和右为 1,编码为 1010
  • B(1,2)B(-1, -2):由于 y<0y < 0x<0x < 0,因此下和左为 1,编码为 0101

2. 模拟裁剪处理步骤

  • 第一轮循环:处理点 A 题目明确指出从端点 A 开始顺序考察。点 AA 编码为 1010(上、右为 1)。在大部分国内教材(如孙家广《计算机图形学》)的标准实现中,考察边界的顺序为:左、右、下、上
    1. 右边界裁剪:优先考察右边界 x=2x = 2
      • 计算直线 ABABx=2x = 2 的交点。
      • 直线斜率 m=3(2)3(1)=54=1.25m = \frac{3 - (-2)}{3 - (-1)} = \frac{5}{4} = 1.25
      • 代入 x=2x = 2,得到 y=1.25×(23)+3=1.75y = 1.25 \times (2 - 3) + 3 = 1.75
      • 该交点为 (2,1.75)(2, 1.75),即图中的 RR
    2. 更新端点:此时端点 AA 被更新为 RR,其编码变为 0000(已在窗口边界上/内)。
  • 第二轮循环:处理点 B 现在端点 A(R)A(R) 编码为 0000,端点 BB 编码为 0101(下、左为 1),继续对未完成的端点 BB 进行裁剪。
    1. 左边界裁剪:按照“左、右、下、上”的顺序,优先考察左边界 x=0x = 0
      • 代入 x=0x = 0,得到 y=1.25×(03)+3=0.75y = 1.25 \times (0 - 3) + 3 = -0.75
      • 该交点为 (0,0.75)(0, -0.75),即图中的 PP
    2. 更新端点:此时端点 BB 被更新为 PP,其新编码计算为 0100(因为此时 y=0.75<0y = -0.75 < 0,依然在下方)。
  • 第三轮循环:继续处理更新后的点 B (即 P) 目前端点 A(R)A(R) 编码为 0000,端点 B(P)B(P) 编码为 0100(下为 1)。
    1. 下边界裁剪:考察下边界 y=0y = 0
      • 代入 y=0y = 0,由 0=1.25x0.75    x=0.60 = 1.25x - 0.75 \implies x = 0.6
      • 该交点为 (0.6,0)(0.6, 0),即图中的 QQ
    2. 更新端点:端点 BB 被更新为 QQ,其编码变为 0000
  • 结束 两端点的编码均变为 0000,线段全在窗口内,算法结束。

综上,在依序求交点的标准 Cohen-Sutherland 算法执行过程中,P,Q,RP, Q, R 被求出的先后顺序是:R, P, Q。因此本题选 C。

9. 用 Liang-Barsky 参数化裁剪算法裁剪下图所示线段 ABAB,需要求出线段与各边交点的参数。设 AA 点参数为 0,那么线段 ABAB 与左边界交点的参数 u1u_1 为: [ A ]

Liang-Barsky 左边界交点参数
  • A. 3/4
  • B. 1/4
  • C. 3/5
  • D. 1/5

【解析】 本题考察的是计算机图形学中的 Liang-Barsky 参数化线段裁剪算法。 根据题目中图示描述,线段两端点为 A(3,3)A(3,3) and B(1,2)B(-1,-2),且设 A 点参数为 0(这意味着线段的参数方程是从 AA 出发指向 BB 的,其参数 u[0,1]u \in [0, 1])。

1. 确定线段参数方程AA 为起点,BB 为终点,线段的参数方程为:

x(u)=xA+u(xBxA)=3+u(13)=34ux(u) = x_A + u(x_B - x_A) = 3 + u(-1 - 3) = 3 - 4uy(u)=yA+u(yByA)=3+u(23)=35uy(u) = y_A + u(y_B - y_A) = 3 + u(-2 - 3) = 3 - 5u

其中坐标增量为:Δx=xBxA=4\Delta x = x_B - x_A = -4Δy=yByA=5\Delta y = y_B - y_A = -5。 裁剪窗口边界为:左边界 wL=0w_L = 0,右边界 wR=2w_R = 2,下边界 wB=0w_B = 0,上边界 wT=2w_T = 2

2. 计算 Liang-Barsky 算法的 pkp_kqkq_k Liang-Barsky 算法的基本公式为:upkqk(k=1,2,3,4)u \cdot p_k \le q_k \quad (k=1,2,3,4)。 其中 k=1k=1 对应左边界:

  • p1=Δx=(4)=4p_1 = -\Delta x = -(-4) = 4
  • q1=xAwL=30=3q_1 = x_A - w_L = 3 - 0 = 3

3. 计算交点参数 线段与左边界交点处的参数 u1u_1 计算为:

u1=q1p1=34u_1 = \frac{q_1}{p_1} = \frac{3}{4}

同理,其余边界的交点参数计算如下:

  • 右边界 (k=2k=2): p2=Δx=4p_2 = \Delta x = -4q2=wRxA=23=1    u2=14=14q_2 = w_R - x_A = 2 - 3 = -1 \implies u_2 = \frac{-1}{-4} = \frac{1}{4}
  • 下边界 (k=3k=3): p3=Δy=(5)=5p_3 = -\Delta y = -(-5) = 5q3=yAwB=30=3    u3=35q_3 = y_A - w_B = 3 - 0 = 3 \implies u_3 = \frac{3}{5}
  • 上边界 (k=4k=4): p4=Δy=5p_4 = \Delta y = -5q4=wTyA=23=1    u4=15=15q_4 = w_T - y_A = 2 - 3 = -1 \implies u_4 = \frac{-1}{-5} = \frac{1}{5}

综上,线段 ABAB 与左边界交点的参数 u1u_13/43/4。因此本题选 A。

10. 用 Liang-Barsky 参数化裁剪算法裁剪下图所示线段 ABAB,设 AA 点参数为 0,那么“入点”参数 umaxu_{\max} 为: [ B ]

Liang-Barsky 入点参数
  • A. 3/4
  • B. 1/4
  • C. 3/5
  • D. 1/5

【解析】 本题考察的是计算机图形学中的 Liang-Barsky 参数化线段裁剪算法。 根据题目中图示描述,线段两端点为 A(3,3)A(3,3) and B(1,2)B(-1,-2),且设 A 点参数为 0(这意味着线段的参数方程是从 AA 出发指向 BB 的,参数 u[0,1]u \in [0, 1])。

1. 确定线段参数方程与增量AA 为起点,BB 为终点,线段的参数方程为:

x(u)=34u,y(u)=35ux(u) = 3 - 4u,\quad y(u) = 3 - 5u

其中 Δx=4\Delta x = -4Δy=5\Delta y = -5。 裁剪窗口边界为:左边界 wL=0w_L = 0,右边界 wR=2w_R = 2,下边界 wB=0w_B = 0,上边界 wT=2w_T = 2

2. 计算 Liang-Barsky 算法各边界对应的参数 根据算法定义,各边界参数如下:

边界 kk边界含义pkp_kqkq_k交点参数 uk=qk/pku_k = q_k/p_k
k=1k=1左边界 (xwLx \ge w_L)Δx=4-\Delta x = 4xAwL=3x_A - w_L = 3u1=3/4u_1 = 3/4
k=2k=2右边界 (xwRx \le w_R)Δx=4\Delta x = -4wRxA=1w_R - x_A = -1u2=1/4u_2 = 1/4
k=3k=3下边界 (ywBy \ge w_B)Δy=5-\Delta y = 5yAwB=3y_A - w_B = 3u3=3/5u_3 = 3/5
k=4k=4上边界 (ywTy \le w_T)Δy=5\Delta y = -5wTyA=1w_T - y_A = -1u4=1/5u_4 = 1/5

3. 区分“入点”与“出点”并求 umaxu_{\max} 根据算法:

  • pk<0p_k < 0 时,线段从外部延伸向内部,对应入点(Entering point)。我们要在这些 uku_k 中取最大值,即 umax=max(0,ukpk<0)u_{\max} = \max(0, u_k \mid p_k < 0)
  • pk>0p_k > 0 时,线段从内部延伸向外部,对应出点(Leaving point)。我们要在这些 uku_k 中取最小值,即 umin=min(1,ukpk>0)u_{\min} = \min(1, u_k \mid p_k > 0)

观察上面表格,pk<0p_k < 0 的边界有:

  • k=2k=2 (右边界): p2=4<0    u2=1/4p_2 = -4 < 0 \implies u_2 = 1/4
  • k=4k=4 (上边界): p4=5<0    u4=1/5p_4 = -5 < 0 \implies u_4 = 1/5

计算“入点”参数的最大值 umaxu_{\max}

umax=max(0,u2,u4)=max(0,14,15)=14u_{\max} = \max\left(0, u_2, u_4\right) = \max\left(0, \frac{1}{4}, \frac{1}{5}\right) = \frac{1}{4}

综上,“入点”参数 umaxu_{\max}1/41/4。因此本题选 B。

11. 用编码裁剪法裁剪二维线段时,判断下列直线段采用哪种处理方法。假设直线段两个端点 MMNN 的编码为 1000 和 1001(按 TBRL 顺序)。 [ B ]

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

【解析】 Cohen-Sutherland 算法中:

  • codeM==0000codeM == 0000codeN==0000codeN == 0000,则线段完全在窗口内,直接保留。
  • codeM&codeN0codeM \& codeN \ne 0,说明线段两个端点均在同一个边界的同一外侧(此处 1000&1001=100001000 \& 1001 = 1000 \ne 0,说明它们都在窗口顶边界的上方),因此该线段完全在可见区域之外,可以“直接舍弃”(简易拒绝)。本题选 B。

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

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

【解析】 用按位与运算符 &。若 (c1 & c2) != 0,代表两个端点至少有一位同为 1,即它们同时位于裁剪窗口的某一边界外侧,可以直接被舍弃。因此选 C。

13. 根据 Cohen-Sutherland 算法,如右图所示的直线和裁剪窗口,AABB 两点的区域编码分别是? [ B ]

Cohen-Sutherland 区域编码图
  • A. 0110,0000
  • B. 0101,0000
  • C. 1010,1111
  • D. 1001,1111

【解析】 A 点位于裁剪窗口的左下方,按上下右左(TBRL)编码:

  • 位于下方,故第 2 位 B = 1;
  • 位于左方,故第 4 位 L = 1;
  • 其余位为 0,因此 A 点编码为 0101。 B 点位于裁剪窗口内部,所有编码位均为 0,故 B 点编码为 0000。 本题选 B。

14. 右图中最外层的窗口设为显示器窗口大小,用三类大小的窗口采用编码裁剪算法裁剪直线,其效率排序应为: [ 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 的大小适中,这意味着线段“穿过窗口边界”的概率最大。此时线段既不能被“完全保留”,也不能被“完全弃置”,算法不得不频繁地进入循环去计算线段与边界 of the 交点。求交点涉及浮点数乘除法运算,在图形学中是非常耗时的,因此导致效率最低

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

15. 直线裁剪的 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. p1<0p_1 < 0 时,umaxu_{\max} 不小于直线与窗口左边界(或延长线)的交点参数
  • C. p1>0p_1 > 0 时,uminu_{\min} 不大于直线与窗口左边界(或延长线)的交点参数
  • D. 直线段平行于坐标轴时,umaxuminu_{\max} \le u_{\min}

【解析】

  • A. 正确。若 umax>uminu_{max} > u_{min},说明进入窗口的参数大离离开窗口的参数,说明整条线段均在窗口外。
  • B. 正确。p1<0p_1 < 0 表示从左侧向内穿入。由于 umaxu_{max} 取所有入点参数的最大值,它自然不小于与左边界交点的参数。
  • C. 正确。p1>0p_1 > 0 表示从内向左侧穿出。由于 uminu_{min} 取所有出点参数的最小值,它自然不大于与左边界交点的参数。
  • D. 错误。当直线平行于坐标轴时,对应方向的 pk=0p_k = 0。若在此方向上直线位于窗口之外,则算法将直接判定线段不可见并舍弃,并不能保证此时 umaxuminu_{max} \le u_{min}。因此该说法是错误的。选 D。

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

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

【解析】 Sutherland-Hodgeman 多边形裁剪算法对每条边(SPS \rightarrow P)的输出规则如下:

  • 若 S 和 P 都在可见一侧:只输出终点 P(因为起点 S 在前一条边处理时已被输出,避免重复输出)。因此 A 说法中“输出 S 和 P”是错误的。
  • 若 S 和 P 都在不可见一侧:不输出任何点(B 正确)。
  • 若 S 可见,P 不可见:说明边由内向外穿出,输出与边界的交点 I(C 正确)。
  • 若 S 不可见,P 可见:说明边由外向内穿入,输出交点 I 和终点 P(D 正确)。 故本题选 A。

二、 多选题

17. 用射线法判断一个点是否在多边形内时,该射线与多边形的交点数满足一定的计数规则。若交点是多边形的顶点,则交点个数取值正确的情况是(______)。 [ B, C ]

  • A. 两边都在射线的同一侧,计数 1 次
  • B. 两边都在射线的同一侧,计数 2 次
  • C. 两边在射线的两侧,计数 1 次
  • D. 两边在射线的两侧,计数 2 次

【解析】 当测试射线通过多边形的顶点时,需要特殊处理以确保奇偶计数的准确:

  • 如果与该顶点相邻的两条边都在射线的同侧(即该顶点为局部极值点),则该交点应计数 2 次(或 0 次),这样可以保持状态不被改变。
  • 如果相邻的两条边分别在射线的两侧(即射线在此处穿过了多边形边界),则该交点计为 1 次。 故本题选 B、C。

18. 直线段光栅化算法中,直线段 P0(0,0)P1(8,6)P_0(0,0) - P_1(8,6) 的绘制点列如下图的算法有: [ A, B, C ]

直线光栅化网格图
  • A. DDA 算法
  • B. Bresenham 算法
  • C. 中点画线算法
  • D. 以上三算法均不是

【解析】 对于起终点为整数坐标的直线段,由于 DDA 算法、Bresenham 算法和中点画线算法对像素近似取整的数学本质一致,在绘制像素级坐标时,它们会生成完全一致的离散点列。本题选 A、B、C。


三、 判断题

19. 增强图像像素的显示亮度能够获得反走样效果。 ( × )

  • A. 正确 (True)
  • B. 错误 (False)

【解析】 仅仅单纯调高或增强像素的显示亮度,并不能消除由于离散采样带来的锯齿失真。反走样(Anti-aliasing)通常需要通过区域取样、加权过滤等方法,根据像素被图形覆盖的面积大小来调整像素的灰度或色彩深度,使边缘平滑过渡。故本题说法错误,选 B。


四、 填空题

20. 对图形进行光栅化时,用离散的像素表示连续的直线或区域边界引起的失真现象称为______ 走样 ,用于减少或者消除走样的技术称为 反走样 ______。

【解析】 这是图形学中的基本概念。失真现象被称为“走样”(Aliasing),用来减轻或消除该现象的技术称为“反走样”(Anti-aliasing)。

Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录