平面图形原理总结(4):多边形裁剪

前言

继续总结关于图形学的问题,这次总结下多边行的裁剪问题,同样可以自行阅读参考文献了解,以下是本人的自行总结内容。

参考文献:《计算机图形学——用OpenGL实现(第2版)》 清华大学出版社

平面直线与多边形的裁剪

裁剪的前提是必须相交,否则裁剪结果为空。所以我们可以选算出直线与多边形的相交点的t值并按大小顺序记录下来并记录是出点还是入点,与多边形的顶点一起做个队列,根据直线的法向量与要裁剪的部分,对多边形的点按顺时针顺序查找,当找到入点后,根据t的顺序找下一个出点(跳过中间的多边形顶点),然后继续查找直至找到已找过的点,如此对所有要裁剪部分的顶点都查找完为止。

平面多边形与多边形的裁剪

同样多边形与多边形裁剪的前提是两多边形必须相交,否则裁剪结果为空。裁剪步骤与上述相仿,首先要做出两个多边形顶点以及相交点的顺时针顺序队列(必须顶点起头)。然后遍历被裁剪多边形的队列,查找的第一个交点开始;重复以下操作:找到下一个交点,并交换到另一队列对应交点,继续往下查找;直至找到有重复查找过的交点为止,记录过程中的所有点为结果;然后继续找寻下一个未被检测的被裁剪队列顶点,继续上述查找记录,直至遍历完整个被裁剪队列为止,被记录的点的集合即为裁剪结果。

平面多边形间的集合操作

假定两多边形A,B

交集
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值