为了账号安全,请及时绑定邮箱和手机立即绑定

确定顶点是否位于一组顶点内

确定顶点是否位于一组顶点内

开心每一天1111 2022-09-13 19:39:42
如何确定一个图形是否位于另一个图形中?我的算法适用于以下矩阵: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


查看完整回答
反对 回复 2022-09-13
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信