计算两个四边形的交点的方法

Method to calculate the intersection of two quadrilaterals?

本文关键字:方法 四边形 两个 计算      更新时间:2023-10-16

可能的重复:
多边形相交的简单算法

我正在寻找有关如何快速计算两个任意定向四边形(无预设角角或侧面长度约束)的相交的大纲。我不是希望简单地检查它们是否相交,而是希望获得构成所得相交区域的积分。我知道,总的来说,多边形的交叉路口并不是一个琐碎的问题,并且有一些可以做得很好的库。

但是,由于在我只关心四个方面形状的特殊情况下,我想知道我是否可以使用一种快速的方法,而无需在我的应用程序中包含整个额外的库。

到目前为止我所想到的就是:

  1. 在两个形状相对于彼此的形状上运行'point in Polygon'
  2. 将每个多边形的每个边缘相交

上面的两个步骤确定会给我所有构成所得相交区域的所有点吗?有更好的使用方法吗?

,如果我可以正确订购构成所得区域的点的正确排序,也将是 nice 。这不是强制性的 - 如果您知道有任何聪明/快速的方法(凸赫尔?),我会感谢任何建议。

您没有说明两个四边形是凸面。如果是,则可以使用常规凸多边形交叉算法,例如http://www.iro.umontreal.ca/~plante/compgeom/algorith.html

从我可以收集的内容中,它不需要任何异国情调的数据架构或操作,因此不难实施。

凸多边形的交点相对容易。Google IT,So和其他地方都有很多资源。

并非所有四边形都是凸。两个非凸二维克的交点可能会导致几个断开的多边形,只有它们的观点会给您带来很大的帮助,但是如果您需要的话,并与每对边相交。它将比任何一般方法

容易得多,更快

即使对于凸形,愚蠢的蛮力方法也可能更快。您必须进行一些测试才能找出最适合您的方法。