代码之家  ›  专栏  ›  技术社区  ›  amit kumar

C++中的力导向布局实现

  •  7
  • amit kumar  · 技术社区  · 15 年前

    您是否知道的开源实现 force-directed layout 在C++中使用GUI?最好是BSD/MIT/Apache或其他(非GPL)许可证。

    4 回复  |  直到 11 年前
        1
  •  11
  •   Benoît photo_tom    15 年前

    Boost.Graph library 提供了广泛的算法,其中有一些布局算法。我建议使用这两种方法中的任何一种 Kamada-Kawai spring layout Fruchterman-Reingold force-directed layout

    Boost licence 非常宽容,所以不用担心。

        2
  •  8
  •   dirkgently    15 年前

    谷歌的第一个结果是 VTK . 另一个带我去 vtkGraphLayoutView .

        3
  •  4
  •   grieve    15 年前

    你看过吗 neato graphviz guide 甚至详细介绍了将graphviz用作库的过程。这个 指导 包括使用fdp布局算法,这似乎正是您想要的。所有的graphviz都属于 Common Public License .

        4
  •  2
  •   user44484 user44484    15 年前

    概述

    https://www.kitware.com/InfovisWiki/index.php/Main_Page

    如果您需要此应用程序,有一些安装步骤,所有信息都在该wiki上。它是基于VTK构建的应用程序。特定功能概述能够以二维表示信息图(不一定是几何图形)。

    正如Dirkgenty所指出的,VTK有一个力导向图布局。使用OverView之类的工具的好处是,您可以轻松地为OverView创建一个自定义插件,您可以使用该插件读取数据并使用force-directed布局策略显示数据。

    如果您不想依赖于OverView,那么提取插件代码并仅引用OverView是非常容易的,因为所有渲染都是在插件之外处理的。