计算机图形学裁剪中软裁剪是什么意思

中国农业大学赵明老师


如上图,屏幕显示的只是图形的一部分需要确定图形哪些部分落在显示区之内,哪些落在显示区之外

选择的过程就称为裁剪

最暴力的裁剪方法:判断图形所有的点是不是都在窗口内


只要点的x,y满足在窗口矩形区域内的条件(x≤x≤x且y≤y≤y),就可取

判断直线段与窗ロ的关系

  1. 与窗口边界相交:AB,GH
    如果相交,则计算它与边界的交点(以确定这条线段的哪一部分可显示

Cohen Sutherland算法/编码裁剪算法——通过二进制编碼及运算,对直线与窗口的关系进行分类


线段两端点都在窗口内时,线段必全在窗口内


线段两端点全在窗口左边/右边/上面/下面时,线段必在窗口外

对直线段按照交点进行分段分段后判断直线是简取还是简弃

线段的两个端点赋四位二进制码 D3D2D1D0.

  1. 运算为0则直线段简取;
  2. 运算非0,则直线段简弃;
  3. 若两条件均不成立则直线段要被一分为二,需求出直线段与窗口边界的交点进行取舍。
  1. 大部分线段完铨可见时;
  2. 大部分线段完全不可见

中点分割法——二分逼近的方法确定直线段与窗口的交点

不断求线段的中点,逼近交点 (直到中点與窗口边界的坐标值在规定的误差范围内相等)


舍弃中点和离窗口边界最远点构成的线段。


舍弃中点和离窗口边界最近点构成的线段

Liang Barsky算法——直线方程参数化、给直线赋方向

  1. 当P1=P2=0时:表示直线平行于y轴
  2. 当P1=P2=0时:表示直线平行于x轴
若此时还满足qk<0,则线段完全在边界外舍弃该線段。
若此时满足qk≥0则进一步判断。

线段从裁剪边界延长线的外部延伸到内部入边交点

线段从裁剪边界延长线的内部延伸到外部出边交点

  1. 若Umax> Umin直线段在窗口外,删除该直线
  2. 若Umax Umin,则将Umax和Umin代入直线参数方程求出两个交点坐标。
  1. 对于实交点有0≤U≤1,注意Umax囷Umin的范围限定

我要回帖

更多关于 计算机图形学裁剪 的文章

 

随机推荐