如何扩展此代码,以包含不同数量的六边形层? 我需要一个六边形格子的图,给定m层的数目。m=1表示1个正六边形,边1,中心在原点,对于m=2,在初始六边形周围添加6个正六边形,对于m=3,添加第三层六边形,依此类推
import networkx as nx
import matplotlib.pyplot as plt
G = nx.hexagonal_lattice_graph(m=2,n=3, periodic=False, with_positions=True,
create_using=None)
pos = nx.get_node_attributes(G, 'pos')
nx.draw(G, pos=pos, with_labels=True)
plt.show()
一个有趣的问题!我花的时间比我预期的要长一点。基本上,函数
hexagonal_lattice_graph()
生成一个m x n
矩形六边形网格。因此,任务是首先绘制一个大网格,然后移除最外层之外的节点。 我使用距离来决定哪些节点保留,哪些节点被删除。因为奇数和偶数m
的行为稍有不同,这就更加棘手了。因此,必须仔细计算中心坐标对于m=3,产生以下结果:
对于m=4:
欢迎来到SO!希望上述解决方案清晰明了,有助于您前进
相关问题 更多 >
编程相关推荐