确定多边形内的点位置:光线追踪与 Matplotlib 路径
检查点是否位于多边形内时,有两个众所周知的方法方法是光线追踪方法和matplotlib的path.contains_points函数。虽然这两种方法各有优点,但客观测试显示两者之间存在显着的性能差异。
对规则 100 边多边形内的大量随机点进行了比较分析。光线追踪方法大约需要 0.44 秒来完成任务,而 matplotlib 的 path.contains_points 只需要 0.0099 秒,速度优势明显。
替代选项:Shapely
对于强大的多边形内点检查,shapely,特别是它的 contains() 方法,是一个备受推崇的库。其详细的文档和全面的示例使其成为一个有价值的考虑因素。
粗粒度测试的网格优化
如果精度要求不太严格,请创建布尔值网格表明点包含可以显着提高速度。 numpy 库的 meshgrid 函数和 matplotlib 的路径可以组合起来生成一个网格,其中每个单元格指示其边界内的点是否在多边形内部。
这种方法提供了一定程度的容差,非常适合像素
总而言之,对于大数据集的高精度多边形内点测试,matplotlib 的 path.contains_points 方法因其优越的性能而成为推荐选择。 Shapely 是特定几何计算的可靠替代方案,而网格优化对于要求不高的应用程序来说是一个可行的选择。
以上是多边形中的点:光线追踪与 Matplotlib Path.contains_points:哪种方法占主导地位?的详细内容。更多信息请关注PHP中文网其他相关文章!