试题详情
- 简答题写出图形裁剪的四位编码裁剪算法。
-
四位编码线段裁剪方法是依裁剪区域边界把平面划分为9个区域,如图所示,矩形裁剪区域位于中心,每个区域用4位二进制编码表示。设矩形区域的左下角坐标为(xmin,ymin),左上角坐标为(xmax,ymax),P(x,y)为平面上一点,则可判断P点位于边界内外。
线段相对于矩形裁剪区域的位置,存在四种可能的情况:
(1)两端点的四位编码均为0000,则该线段位于矩形裁剪窗口内。此时只需保留该线段的两端点即可。
(2)两端点的四位编码均不为0000,且逻辑相乘结果不为0。此时该线段位于矩形裁剪区域之外,则将该线段舍弃即可。
(3)线段一个端点的四位编码为0000,另一端点的四位编码不为0000,则需要计算线段与矩形裁剪区域边界的交点,并用求得的交点代替矩形裁剪区域外的线段端点。
(4)线段两端点的四位编码均不为0000,且逻辑相乘结果为0,此时该线段两端点均在矩形裁剪区域之外,则需要判断并计算线段与矩形裁剪区域边界的交点。若线段与矩形裁剪区域边界无交点,则表示整个线段在矩形裁剪区域之外,只须将该线段舍弃即可;若线段与矩形裁剪区域边界有交点(必为两个交点),则表示部分线段在矩形裁剪区域内,用两个交点分别代替原线段的两端点即可。 关注下方微信公众号,在线模考后查看
热门试题