Cohen-Sutherland 算法基本原理
简述:直线剪取算法,该算法通过初始测试来减少要计算的交点数目从而加快线段剪取算法的速度。
做法:每条线段的端点都赋以四位二进制代码,称为区域码(region code),用于剪取端点相对于剪取矩形边界的位置。
将矩形屏幕向外延伸,划分为9个区域,对9个区域进行编码;
如下图所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/efdf0d915827725b68af0ac8d5d644f7.png)
- 区域编码讲解:
编码规则:上下右左,对应四位编码。
示例:1001,第一位:1,因为该区域在上方所以第一位为1;
第二位, 0,因为该区域不在下方第二位所以为0;
第三位, 0,因为该区域不在右边第三位所以为0;
第四位, 1,因为该区域在左边第四位所以为1;