如何确定一个图形是否位于另一个图形中?我的算法适用于以下矩阵:import numpy as npA = np.zeros((9,9)) for i in np.arange(1,8): for j in np.arange(1,8): A[i,j] = 1 for i in np.arange(2,4): for j in np.arange(2,4): A[i,j] = 2 print(A)生成矩阵:[[-1. -1. -1. -1. -1. -1. -1. -1. -1.] [-1. 1. 1. 1. 1. 1. 1. 1. -1.] [-1. 1. 2. 2. 1. 1. 1. 1. -1.] [-1. 1. 2. 2. 1. 1. 1. 1. -1.] [-1. 1. 1. 1. 1. 1. 1. 1. -1.] [-1. 1. 1. 1. 1. 1. 1. 1. -1.] [-1. 1. 1. 1. 1. 1. 1. 1. -1.] [-1. 1. 1. 1. 1. 1. 1. 1. -1.] [-1. -1. -1. -1. -1. -1. -1. -1. -1.]]要创建两个图形:”
1 回答
互换的青春
TA贡献1797条经验 获得超6个赞
正如Prune所建议的那样,该软件包具有您所需的内容。虽然可以将线循环视为图形,但将它们视为嵌入在 2D 平面中的多边形会更有用。shapely
通过从点和边段创建对象,可以使用所有对象都必须测试一个对象是否位于另一个对象内部的方法。Polygoncontainsshapely
您需要按顺序对边缘段进行排序。顺时针或逆时针可能无关紧要,因为可能通过在无穷远处构造一个点并确保它是“外部”来检测内部和外部。shapely
以下是您帖子中原始正方形对的完整示例:
from shapely.geometry import Polygon
p1 = Polygon([(0,0), (0,8), (8,8), (8,0)])
p2 = Polygon([(2,2), (2,4), (4,4), (4,2)])
print(p1.contains(p2))
该对象的文档位于 https://shapely.readthedocs.io/en/latest/manual.html#PolygonPolygon
以及 https://shapely.readthedocs.io/en/latest/manual.html#object.contains 的方法contains
添加回答
举报
0/150
提交
取消