Appearance
@jtopo/core / GraphSystem
Class: GraphSystem
图系统 (贴合数学上的图论)
一、提供静态方法,可以把Node/Link对象集合转成 图对象;
二、根据图对象可以更方便的分析对象关系,例如:
- 某个节点的出入度、邻接节点列表
- 图的遍历
- 从一个节点到另外一个节点的路径信息等
提供、提供常用算法,例如:
- 最小生成树
- 判断一个图是否是“树”( 是否有回路 等)
- 是否零图
- 图的阶(Order)、是否零图、是否平凡图等
js
// 代码示例:
// node&link对象集合
let objects = layer.children;
// 转成图对象(0-多个)
let graphArr = stage.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;
// ...Table of contents
Constructors
Methods
Constructors
constructor
new GraphSystem()
Methods
getLinks
getLinks(graph): Link[]
Parameters
| Name | Type |
|---|---|
graph | Graph |
Returns
Link[]
getNodes
getNodes(graph): Node[]
Parameters
| Name | Type |
|---|---|
graph | Graph |
Returns
Node[]
objectsToGraphs
objectsToGraphs(displayObjects): Graph[]
将Node或者Link集合转成图列表
Parameters
| Name | Type |
|---|---|
displayObjects | (Node | Link)[] |
Returns
Graph[]
toGraphs
toGraphs(vertexes, edges): Graph[]
Parameters
| Name | Type |
|---|---|
vertexes | Vertext[] |
edges | Edge[] |
Returns
Graph[]
toTree
toTree(graph): VirtualTree
生成1棵虚拟树( 提出去放到system)
Parameters
| Name | Type |
|---|---|
graph | Graph |
Returns
VirtualTree
Array
travelVertext
travelVertext(v, subVertexes?, subEdges?, markSet?): void
Parameters
| Name | Type | Default value |
|---|---|---|
v | Vertext | undefined |
subVertexes | Vertext[] | [] |
subEdges | Edge[] | [] |
markSet | Set<any> | undefined |
Returns
void
createMinimalSpanningTree
Static createMinimalSpanningTree(graph): Graph
根据图生成最小生成树
Parameters
| Name | Type |
|---|---|
graph | Graph |