python判断某个坐标是否在规定范围内

1,189 阅读1分钟

最近在项目上处理异常数据的时候,有个需求是根据转换后每组数据的两个数组成一个坐标,判定这个坐标是否在合理的范围内,这个范围通过matplotlib绘制出来,是一个不规则的多边形。

百度看了一堆由大神们写的一些算法,对新手来说还是不够友好。下面是总结了两个非常好用的api文档,希望对大家有所帮助。

通过matplotlib.path判断

直接上代码

from matplotlib.path import Path

# 构造一个矩形多边形进行测试
p = Path([(0, 0), (0, 1), (1, 1), (1, 0)])
a = p.contains_point((0.1, 0.1))
print(a)

out:True

# 测试在矩形边上的点返回结果
a = p.contains_point((1, 0))
print(a)

out:False

通过shapely判断

直接上代码

from shapely.geometry import Point
from shapely.geometry.polygon import asPolygon

polygon2 = asPolygon([(0, 0), (0, 1), (1, 1), (1, 0)])
b = polygon2.contains(Point(0.9, 0.1))
print(b)

out:True

# 测试在矩形边上的点返回结果
b = polygon2.contains(Point(1, 0))
print(b)
out:False

两个简便的api中都只能判断是否在矩形内部,不能识别包不包括是否在矩形边上,或许也有参数能设置,但我还没找到,希望有大神来解惑,谢谢

希望对大家有所帮助,有问题的地方也请大家批评指正,感谢!!

能给个关注就更好了