Algorithm 计算相交重角的角点和边

Algorithm 计算相交重角的角点和边,algorithm,geometry,collision-detection,intersection,Algorithm,Geometry,Collision Detection,Intersection,我正在寻找一种算法来查找多个重叠的矩形的外边缘和角点 给定多个平行于轴的矩形,定义为:x、y、宽度和高度 需要的是新兴形状的角点,定义为:x、y和两个相邻的角点 需要的还有边,定义为:2个角点和一个方向(北、东、南、西) 如果矩形完全位于其他矩形内部,则可以忽略该矩形 该算法不需要非常优化,内存也不是问题。这可以通过使用多边形剪裁算法来解决;例如,瓦蒂或马丁内斯提出的建议。使用此技术: 将每个矩形视为多边形(由追踪矩形边缘的线组成的路径)。剪裁算法假定每个矩形都沿着相同的方向进行跟踪 找到所

我正在寻找一种算法来查找多个重叠的矩形的外边缘角点

给定多个平行于轴的矩形,定义为:xy宽度和高度

需要的是新兴形状的角点,定义为:xy和两个相邻的角点

需要的还有,定义为:2个角点和一个方向(北、东、南、西)

如果矩形完全位于其他矩形内部,则可以忽略该矩形


该算法不需要非常优化,内存也不是问题。

这可以通过使用多边形剪裁算法来解决;例如,瓦蒂或马丁内斯提出的建议。使用此技术:

  • 将每个矩形视为多边形(由追踪矩形边缘的线组成的路径)。剪裁算法假定每个矩形都沿着相同的方向进行跟踪
  • 找到所有多边形的并集
  • 然后,生成的形状将仅包含位于多边形外边缘上的点 (这些是您要查找的角点)
但是,如果生成的形状形成一个孔,则有一个角的情况。这通常将以与形状其余部分相反的方向进行跟踪:

我不知道这是否重要,但如果重要,则需要反转任何孔的方向,并根据形状及其孔重新计算并集,直到不再出现其他孔

要获取边方向,多边形裁剪器实现需要在剪裁边时保存有关边(在本例中为边方向)的信息