我有一个图gee,看起来像这样:
gee
看看由顶点2、3和4组成的子图,很明显1在外部,所有其他节点都在内部。类似地,取节点2,4,5,很明显7在内部,其他都在外部。我如何才能正式让Python告诉我这是这样的呢?我不认为基于距离,边交叉或程度的论点会起作用,因为我可以在这个小图中看到反例。具体来说,我想知道我是否可以创建一个子图:subgee = gee.subgraph([2,3,4]),然后使用参数“gee的哪些节点位于subgee内部?”谢谢
subgee = gee.subgraph([2,3,4])
subgee
rqqzpn5f1#
我假设你有顶点的位置(x,y)?要确定一个点是否在多边形内,概念性:从点到无穷远点画一条直线,计算与多边形边的交点,如果是0或偶数,则点为外部,如果是奇数,则点为indide。这在代码中实现是具有挑战性的。下面是一些C代码来进行计数:
int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy) { int i, j, c = 0; for (i = 0, j = nvert-1; i testy) != (verty[j] > testy)) if ( ((verty[i]>testy) != (verty[j]>testy)) && (testx < (vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]) ) c = !c; } return c; }
关于这一点的更多讨论:https://ravenspoint.wordpress.com/2010/06/27/in-or-out/
ars1skjm2#
我只要看看边缘就能知道。在2,4,5三角形中,7是内部的,因为它的唯一边是2,4和5。
gee.edges(7) EdgeDataView([(7, 2), (7, 4), (7, 5)])
2条答案
按热度按时间rqqzpn5f1#
我假设你有顶点的位置(x,y)?
要确定一个点是否在多边形内,概念性:从点到无穷远点画一条直线,计算与多边形边的交点,如果是0或偶数,则点为外部,如果是奇数,则点为indide。
这在代码中实现是具有挑战性的。下面是一些C代码来进行计数:
关于这一点的更多讨论:https://ravenspoint.wordpress.com/2010/06/27/in-or-out/
ars1skjm2#
我只要看看边缘就能知道。在2,4,5三角形中,7是内部的,因为它的唯一边是2,4和5。