Skip to content

图系统(贴合数学的图论系统)

介绍

jtopo自带了一些常用图论算法, 可以将Node或者Link对象一键生成 *图对象*。

根据 *图对象* 可以更方便的分析对象关系,例如:
1. 某个节点的出入度、邻接节点列表
2. 图的遍历
3. 从一个节点到另外一个节点的路径信息等

提供了常用算法,例如:
4. 最小生成树
5. 判断一个图是否是“树”( 是否有回路 等)
7. 图的阶(Order)、是否零图、是否平凡图等

应用场景:

1. 布局、路径搜寻
2. 系统复杂度评估
3. 系统容量计算
4. 仿真计算(如排水系统、交通系统、电力、网络等)

图对象

这里的图默认是:有向、连通图。

js
// 代码示例:
// node&link对象集合
let objects = layer.children;

// 使用图系统
let graphSystem = stage.graphSystem;

// 转成图对象(0-多个)
let graphArr = graphSystem.objectsToGraphs(objects);

// 假设有一个图对象
let graph = graphArr[0];
console.log(graph.isTree());

// 顶点集合
let vertexes = graph.vertexes;
console.log('第一个顶点的出度为:', graph.vertexes[0].getOutDegree());

// 边集合
let edges = graph.edges;

// 最小生成树
let minTreeGraph = graphSystem.createMinimalSpanningTree(graph);


// ...