通过处理多边形相对于每个窗口角或边缘的边界来执行。首先, 将整个多边形修剪到一个边上, 然后考虑生成的多边形, 然后将多边形修剪到第二个边上, 依此类推, 对所有四个边都如此。
处理时的四种可能情况
- 如果第一个顶点在窗口外部, 则第二个顶点在窗口内部。然后将第二个顶点添加到输出列表中。窗口边界和多边形边(边)的相交点也添加到输出线。
- 如果两个顶点都在窗口边界内。然后, 仅将第二个顶点添加到输出列表中。
- 如果第一个顶点在窗口内部, 第二个顶点在外部窗口。与窗口相交的边被添加到输出列表中。
- 如果两个顶点都是外部窗口, 则不会将任何内容添加到输出列表。
下图显示了原始多边形和针对四个窗口的多边形裁剪。
Cohen Hodgmen算法的缺点
此方法需要大量的内存。所有多边形中的第一个以原始形式存储。然后完成对左边缘的剪切并存储输出。然后剪裁右边缘, 然后剪裁上边缘。最后, 修剪底边。所有这些操作的结果都存储在内存中。因此浪费了用于存储中间多边形的内存。
评论前必须登录!
注册