友情提示:同学您好,此页面仅供预览,在此页面学习不会被统计哦! 请进入学习空间后选择课程学习。

一、 Liang-Barsky(参数化)算法的思想

梁友栋和Barsky独立地提出了更快的参数化线段裁剪算法,也称为Liany-Barsky(LB)算法,其算法思想如下:

1)从A,B和P1三点中找出最靠近P2的点:点P1。

2)从C,D和P2中找出最靠近P1的点:点C。

3)P1C为直线的可见部分


问题:如何寻找靠P1 ( P2 )最近的点?

、 Liang-Barsky(参数化)算法的准备工作

1. 直线表示   --  参数化

    

2. 窗体边界分类   --  始边、终边

    当dx≥0(或dy≥0)时,   称x=xL(y=yB)为始边, x=xR(y=yT)为终边。

    当dx<0(dy<0)时,      称x=xL(y=yB)为终边, x=xR(y=yT)为始边。

、 Liang-Barsky(参数化)算法的步骤


1. 求出P1P2和两条始边的交点的参数t1’,t1”,令t1 = max(t1’ , t1” ,0 ),则参数 t1  对应的点就是图中A、B和P1三点中最靠近P2的点的参数。

2. 求出P1P2和两条终边的交点的参数 t2’, t2” ,令t2 = min(t2’ , t2” ,1),则参数 t2 对应的点就是图中C、D和P2三点中最靠近P1的点的参数。

3. 当t2>t1时,参数t∈[t1, t2]的线段就是P1P2的可见部分;当t1>t2时,整个直线段为不可见

四、 Liang-Barsky(参数化)算法的实现

1. 求交


2. 确定始边交点集、终边交点集


3. 确定线段可见部分


4. 实现代码



5. 裁剪示例