gpt4 book ai didi

vb.net - 在 Visual Basic 中绘制节点图

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:23 24 4
gpt4 key购买 nike

问题是我有 10 个节点(比方说),它们之间有一些连接。现在我想绘制一个可视化图形来描述上面的内容,圆圈作为节点,线作为它们之间的连接。我的问题是在屏幕上放置节点的算法是什么,比如说我们画了一个圆圈,那么另一个圆圈应该尽可能不重叠地画出来。请解释。

最佳答案

有很多方法可以解决这个问题,因为 graph drawing 中有很多目标。这是相互不兼容的。应避免的事情包括

  • 交叉边的数量
  • 占用的总表面积和整体形状(紧凑度、纵横比)
  • 边缘过长
  • 边缘之间的小角度(重叠边缘)

这里有一些方法。

  • 一种易于编码的方法是将节点放置在一个圆圈上,并使它们均匀分布。然后将边缘添加为直线。这将“大部分工作”。

  • 更一般的是model your nodes as springs相互排斥。这是 Kamada-Kawai 背后的想法算法,例如。它使节点分开,同时最小化边长。

  • 第三种方法是 radial layout ,其中节点放置在同心环上,表示它们与所选根节点的距离。

我建议您查看 Graphviz包来了解什么是可能的。它易于使用,玩起来很有趣。有多种语言的 Graphviz 库绑定(bind),但不幸的是,Visual Basic 似乎不是其中之一。

编辑: This question是相关的。

关于vb.net - 在 Visual Basic 中绘制节点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1368477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com