gpt4 book ai didi

python - 有没有办法让 matplotlib.path.contains_points 包含边界点

转载 作者:行者123 更新时间:2023-11-28 17:17:11 26 4
gpt4 key购买 nike

我们有一个 HitTest 用例,它还希望考虑路径实际边界上的点。我们正在使用 matplotlib.path.contains_points 来测试一堆点,它对我们来说效果很好。今天我发现它对边界上的点返回 false,在我们的例子中是原点 (0,0),它是路径上的一个点。

有没有一种方法可以将函数调用配置为在边界点上产生 True,即包含边界?我只看到它支持独家测试,但根据 documentation还有其他用于变换和半径的参数,也许它们有一些神奇的数字可以将边界点的东西推为真?

contains_points(points, transform=None, radius=0.0) Returns a bool array which is True if the path contains the corresponding point.

If transform is not None, the path will be transformed before performing the test.

radius allows the path to be made slightly larger or smaller.

最佳答案

源代码的快速扫描表明没有。 matplotlib 并非真正用于空间操作;它只是对它们有一点支持,因为它是一个具有巨大 API 表面的旧代码库。

我建议使用 shapely ,它是专门为像这样的空间操作而构建的。如果你使用 shapely 你可以利用 object.intersects来处理这个。

您可以将您的点滚动到一个由 shapely.Point 对象和您的多边形(给定一系列坐标)组成的 pandas.Series 到一个 poly = shapely.Polygon(coordinates) 对象。然后做一些像 points_that_intersect = points[points.map(lambda p: poly.intersects(p)]

关于python - 有没有办法让 matplotlib.path.contains_points 包含边界点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599018/

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