(13)裁剪之多边形裁剪

多边形的裁剪特点
 多边形是由若干直线段围成的封闭图形。裁剪多边形所得到的结果,应该仍是一个多边形,即是一个封闭图形。

 多边形和窗口之间可能存在的位置关系如下:  



逐边裁剪算法

基本思想:
该算法依次用窗口的四条边框直线对多边形进行分步裁剪。先用一条边框直线对整个多边形进行裁剪,得到一个或若干个新的多边形;再用第二条边框直线对这些新产生的多边形进行裁剪。依次类推,直到用四条边框直线都裁剪完,整个多边形的裁剪过程结束。


多边形逐边裁剪算法步骤: 
①把待裁剪多边形的各顶点按一定方向有次序地组成顶点序列(P1,P2,…,Pn),相继连接相邻两顶点(P1P2,P2P3,…,Pn-1Pn,PnP1),即组成多边形的n条边。该顶点序列是待处理的输入量。

② 处理输入的顶点序列,结果是产生一组新的顶点序列,然后输出该组新的顶点序列(如Q1,Q2,…,Qm)。该新的顶点序列表示了由m条边组成的新的多边形。

③ 把输出的顶点序列作为新的输入量,再次输入到算法中的第②步,如此重复三次。 


具体处理方法:
 算法第②步处理顶点序列时,依次检验顶点序列中的每个顶点Pi(i =1,…,n),处于裁剪边框可见侧的顶点被列入新的顶点序列中输出,处于裁剪边框不可见侧的顶点被删除。

还要检验Pi 点和它前一个顶点Pi–1 点是否处于裁剪边框的同侧(对于P1点,其前一个顶点为Pn点)。若不在同一侧,则求出裁剪边框与直线段Pi Pi–1 的交点,并把该交点作为新的顶点列入到新顶点序列中输出。 


窗口边框及其延长线构成的裁剪线把平面分成两部分:一部分包含窗口,称为可见一侧;另一部分不包含窗口,称为不可见一侧。



设多边形的任意一条边的端点为S(起点)、E(终点),线段SE与裁剪线的位置关系有四种情况:
(1)端点S和E都在不可见侧,则无任何输出;
(2)端点S和E都在可见侧,则输出端点E;


(3)端点S在可见侧,端点E在不可见侧,则输出线段SE与裁剪线的交点I;
(4)端点S在不可见侧,端点E在可见侧,则输出线段SE与裁剪线的交点I和端点E。





  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值