2010-7-21 计算机图形学 8
5.2.3 Cohen-Sutherland线段裁剪 线段裁剪
它的大概步骤如下所述. 它的大概步骤如下所述. 步骤1 判断线段的两个端点是否都在窗口内,如果是, 步骤 判断线段的两个端点是否都在窗口内,如果是, 则线段完全可见,显示该线段,裁剪结束; 则线段完全可见,显示该线段,裁剪结束;否则进入步 骤2 . 步骤2 判断线段是否为显然不可见,即线段的两个端 判断线段是否为显然不可见, 步骤 点均落在窗口某边所在直线的外侧,如果是, 点均落在窗口某边所在直线的外侧,如果是,删除该线 裁剪结束;否则进入步骤3. 段,裁剪结束;否则进入步骤 . 步骤3 求线段与窗口边所在直线的交点, 步骤 求线段与窗口边所在直线的交点,这个交点将待 裁剪的线段分成两部分,其中一部分显然不可见, 裁剪的线段分成两部分,其中一部分显然不可见,删除 对余下的另一部分线段重复步骤1, ,直至结束. 之;对余下的另一部分线段重复步骤 ,2,直至结束.
(d) 关于窗口右边裁剪
2010-7-21
(e) 关于窗口下边裁剪
16
计算机图形学
5.3.2 Weiler-Atherton算法 算法
在实际应用中,不仅待裁剪多边形是任意的,而且 在实际应用中,不仅待裁剪多边形是任意的, 要求裁剪窗口也需要是任意的,如图5.13所示. 所示. 要求裁剪窗口也需要是任意的,如图 所示
P5 P4 P3
P 1
P2
(a) 待裁剪多边形
(b) 关于窗口左边裁剪
(c) 关于窗口上边裁剪
2010-7-21
计算机图形学
15
5.3.1 Sutherland-Hodgman算法 算法
经窗口的右边裁剪后, 经窗口的右边裁剪后,得到多边形 PPPPPPPP P ,如图 0 1 2 3 4 5 6 7 0 5.12(d)所示;经窗口的下边裁剪后,得到最终的结果多边形 所示; 所示 经窗口的下边裁剪后, P PP P P P P P P ,如图 如图5.12(e)所示. 所示. (e)所示 0 1 2 3 4 5 6 8 0