如何確定一個圖形是否位于另一個圖形中?我的算法適用于以下矩陣: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
提交
取消
