凸多边形重叠计算

本文详细介绍了如何计算两个凸多边形的重叠部分,包括求交点的算法、排列交点和顶点的方法,以及如何确定交点个数。通过伪代码阐述了前进情况和夹角判断,帮助理解凸多边形相交问题的解决方案。
摘要由CSDN通过智能技术生成

前言

两个凸多边形的重叠问题就是对两个凸多边形求相交部分的问题。约定凸多边形指它的边界和内部,凸多边形仍用顶点坐标的逆时针方向序列确定。

设给出的两个凸多边形 P 和 Q 的顶点序列分别是 P1,P2,…,PL 和 Q1,Q2,…,Qm。

假设 P 的边界上不包含 Q 的顶点 ,Q 的边界也不包含 P 的顶点。有两个问题需要解决:

  1. 如何有次序地求出各边的所有交点 ,
  2. 如何排列求出的交点和原凸多边形的顶点 , 形成新的凸多边形的顶点序列。

求交点

为了有次序地求出交点 , 可以在两个多边形边上交替地前进,原则是在哪个多边形的边上可能有交点就等待 , 在另一个多边形的边上前进。

前进的原则可以自己随便定义,但是得满足以下两个要求(后面会解释):

  1. 两个多边形向前走的机会相同
  2. 所有情况都要覆盖

初始从 对边 P 0 P 1 与 Q 0 Q 1 P_0P_1 与 Q_0Q_1 P0P1 Q0Q1 的求交 开始 , 注意所有求交是线段的求交。这里规定了 P 0 = P L , Q 0 = Q m P_0=P_L,Q_0=Q_m P0=PL,Q0=Qm

设已经算得 P i − 1 P i 和 Q j − 1 Q j P_{i-1}P_i 和 Q_{j-1}Q_j Pi1Pi Qj1Qj 的交点

  1. 依可能性判定接下去计算的是 P i P i + 1 与 Q j − 1 Q j P_iP_{i+1} 与 Q_{j-1}Q_j PiPi+1 Qj1Q
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值