gpt4 book ai didi

python,匀称 : How to determine if two polygons cross each other,,同时允许它们的边缘重叠

转载 作者:行者123 更新时间:2023-11-28 22:35:06 25 4
gpt4 key购买 nike

我试图找出两个多边形是否相互交叉。 “交叉”是指允许它们的外部相互接触,但它们的内部不能:

只允许下面两个最右边的解决方案:

enter image description here

我试过使用形状相交或交叉(以及其他一些),但找不到有效的内置函数(它们通常与内部和外部都相关)。

最佳答案

你看过 touches 方法了吗?它似乎做你想做的。

如果没有,您可以“自己动手”。例如,这个的一些变体:

def myTouches(poly1, poly2):
return poly1.intersects(poly2) and not poly1.crosses(poly2) and not poly1.contains(poly2)

或者,假设您的形状只是多边形,您可以查看 intersection 返回的集合。如果它仅包含 LineStrings 或单个 Point,则它们只是“接触”。如果它包含其他任何东西(多个 Points 和/或其他多边形),那么它们就会重叠。

编辑:现在我看到了你的图片,除了 touches 之外,你可能还需要使用 disjoint 方法。

关于python,匀称 : How to determine if two polygons cross each other,,同时允许它们的边缘重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38481437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com