下载后可任意编辑直线裁剪算法讨论摘要: 直线裁剪是计算机图形学中的一个重要技术, 在对常见的直经线裁剪的算法分析的基础上, 针对Cohen-Sutherland算法和Liang-Barsky算法进行了分析讨论
并对两种算法了计算直线与窗口边界的交点时, 进行了有效有比较
关键词: 裁剪; 算法; Cohen-Sutherland; Liang-Barsky; 1 引言直线是图形系统中使用最多的一个基本元素
因此对于直线段的裁剪算法是被讨论最深化的一类算法, 当前在矩形窗口的直线裁剪算法中, 出现了许多有效的算法
其中比较著名的有: Cohen-Sutherland算法、 中点分割算法、 Liang-Barsky算法、 Sobkow-Pospisil-Yang算法, 及Nicholl-Lee-Ncholl算法等
2 直线裁剪的基本原理图1所示的为直线与窗口边界之间可能出现的几种关系
能够经过检查直线的两个端点是否在窗口之内确定如何对此直线裁剪
假如一直线的两个端点均在窗口边界之内( 如图1中P5到P6的直线) , 则此直线应保留
假如一条直线的一个端点在窗口外( 如P9) 另一个点在窗口内( 如P10) , 则应从直线与边界的交点( P9) 处裁剪掉边界之外的线段
假如直线的两个端点均在边界外, 则可分为两种情况: 一种情况是该直线全部在窗口之外; 另一种情况是直线穿过两个窗口边界
图中从P3到P4的直线属于前一种情况, 应全部裁剪掉; 从P7到P8的直线属于后一种情况, 应保留P7到P8的线段, 其余部分均裁剪掉
下载后可任意编辑图 1 直线相对干窗口边界的栽剪 直线裁剪算法应首先确定哪些直线全部保留或全部裁剪, 剩下的即为部分裁剪的直线
对于部分裁剪的直线则首先要求出这些直线与窗口边界的交点, 把从交点开始在边界外的部分裁剪掉
一个复杂的画面中可能包含有几千条直线, 为了