第六节 裁 剪
     
 
裁剪区域为任意凸多边形区域时的直线段的裁剪算法
    第一步 计算所要裁剪的直线段所在直线与凸多边形区域的边界直线段的交点。
    第二步 当交点的个数为0或1时,该直线段处于凸多边形区域外
    第三步,当交点的个数为2时,通过判断这两个交点与被裁剪的直线段的端点在直线段所处的直线上的关系来进行裁剪。
    1.如果直线段的两个端点和两个交点刚好全部重合,则显而易见该直线段完全可见。
    2.如果直线段的两个端点和两个交点中有一个重合,则将重合的点视为一点,则将重合点与另外的一个端点、一个交点按在直线上的顺序排列。根据排列的顺序有如下三种情况:
    如果重合点和交点不相邻,则直线段完全可见;如果重合点与交点相邻,且该交点与另一个端点相邻,则直线段部分可见,且可见部分为重合点与另一个交点确定的直线段,它的可见部分为直线段;如果重合点与交点相邻,且该交点与另一个端点不相邻,则直线段完全不可见。
    如果直线段的两个端点和两个交点都不重合。将这四个点按在直线上的顺序排列,根据排列的顺序有如下四种情况:如果两个端点和两个交点分别相邻,则直线段完全不可见;
    如果两个端点在两个交点之间,则直线段完全可见;如果两个交点在两个端点之间,则直线段部分可见,且可见部分为两个交点决定的直线段,它的可见部分为直线段;如果交点和端点的排列顺序是交错的,则直线段部分可见,且可见部分为中间的一个交点和一个端点决定的直线段,它的可见部分为直线段 。

图3.34 裁剪区域为任意凸多边形区域时对直线段的裁剪
 
上一页 | 下一页
  第一节 变换的数学基础
第二节 二维图形变换
第三节 二维视见变换
第四节 三维图形变换
第五节 投影
第六节 裁剪