直线编码裁剪
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
裁剪处理过程: ①图形在区域内的判断; ②求出图形与窗口边界的交点; ③显示区域内的图形
1. 二维线段与窗口的关系 共分四种情况: 1)线段全部在窗口内; 2)线段全部在窗口外; 3)线段两端点完全在窗外,却与窗口
相交; 4)线段的一个端点在窗内,而另一个端点在窗外。
2) 根据编码的值或逻辑运算进行位置判断。① 如果线段两个端点的4位编码全为0,则此线段在窗口内,可直接输出② 若线段两端点的编码逻辑与(位乘)不为0,则线段全部在窗口之外,舍弃; ③ 除上之外,线段与窗口有交点,求交点。)求交过程
① 求直线与窗口边界的交点,用交点分割线段,舍弃交点以外部分用两点式求直线方程L1: Ax+by+c=0 y-y1/x-x1=y2-y1/x2-x1
对直线新端点P2进行编码,继续裁剪。③ 裁剪的次序:按编码值④ 结束标志:编码值全部为零
编码裁剪算法::;:;1)编码规则: 把窗口边界延长分成9个区,每个区用四位二进制数进行编码,其含义如下: 排位从左开始: 第1位为1,端点在yT上,即y>yT 第2位为1,端点在yB下,即y<yB 第3位为1,端点在xR右,即x>xR 第4位为1,端点在xL左,即x<xL 否则,相应位置为0
根据P2点编码值取对应的边界方程: 若左起第一位为1:L2:y=YT 若左起第二位为1:L2:y=YB 若左起第三位为1:L2:x=XR 若左起第四位为1:L2:x=XL 求出L1和L2的交点:P P: 0000
②以交点为界进一步求交判断,并进行分割;舍去窗外的线段部分:P2P 把P点赋给P2点,组成P2P1继续
1. 二维线段与窗口的关系 共分四种情况: 1)线段全部在窗口内; 2)线段全部在窗口外; 3)线段两端点完全在窗外,却与窗口
相交; 4)线段的一个端点在窗内,而另一个端点在窗外。
2) 根据编码的值或逻辑运算进行位置判断。① 如果线段两个端点的4位编码全为0,则此线段在窗口内,可直接输出② 若线段两端点的编码逻辑与(位乘)不为0,则线段全部在窗口之外,舍弃; ③ 除上之外,线段与窗口有交点,求交点。)求交过程
① 求直线与窗口边界的交点,用交点分割线段,舍弃交点以外部分用两点式求直线方程L1: Ax+by+c=0 y-y1/x-x1=y2-y1/x2-x1
对直线新端点P2进行编码,继续裁剪。③ 裁剪的次序:按编码值④ 结束标志:编码值全部为零
编码裁剪算法::;:;1)编码规则: 把窗口边界延长分成9个区,每个区用四位二进制数进行编码,其含义如下: 排位从左开始: 第1位为1,端点在yT上,即y>yT 第2位为1,端点在yB下,即y<yB 第3位为1,端点在xR右,即x>xR 第4位为1,端点在xL左,即x<xL 否则,相应位置为0
根据P2点编码值取对应的边界方程: 若左起第一位为1:L2:y=YT 若左起第二位为1:L2:y=YB 若左起第三位为1:L2:x=XR 若左起第四位为1:L2:x=XL 求出L1和L2的交点:P P: 0000
②以交点为界进一步求交判断,并进行分割;舍去窗外的线段部分:P2P 把P点赋给P2点,组成P2P1继续