一尘不染

检查多边形是否在多边形内

algorithm

昨天我正在寻找一个点是否在多边形内,并找到了这个很棒的脚本:https : //github.com/tparkin/Google-Maps-Point-in-
Polygon

但是今天在工作中,我被告知客户需要检查一个多边形是否在另一个多边形内。我想知道是否有一个公式可以让我使用两个坐标(而不是一个坐标来检查一个点),然后从这两个坐标生成一个矩形并检查该矩形是否在多边形内。

我不知道我是否在问一个愚蠢的问题(高中老师曾经说过“没有愚蠢的问题,只有傻瓜不问”),但是如果你不完全理解我,但是请稍等一下,如果您告诉我从哪里开始,我将不胜感激。


阅读 231

收藏
2020-07-28

共1个答案

一尘不染

对每对线(每个多边形中的一条)执行线相交测试。如果没有线对相交并且多边形A的线端点之一在多边形B内,则A完全在B内。

以上适用于任何类型的多边形。如果多边形是凸的,则可以跳过线相交测试,而只需测试A的所有线端点都在B内。

如果确实有必要,您可以使用扫掠线算法来加速线相交测试。

2020-07-28