Files
lan-manager/web/node_modules/@antv/graphlib/es/generate/compelement.js
openclaw 0a5f6a8047 Initial commit: Lan-manager project code
- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs

Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
2026-04-20 00:52:58 +08:00

35 lines
890 B
JavaScript

import { isSimpleGraph } from '../essence';
import Graph from '../Graph';
/**
* @description Get the graph's complement
* @description.zh-CN 获取图的补图
*/
export var getGraphComplement = function getGraphComplement(originGraph) {
if (!isSimpleGraph(originGraph)) {
return null;
}
var nodeCount = originGraph.nodeCount();
var complementGraph = new Graph({
compound: originGraph.isCompound(),
directed: originGraph.isDirected(),
multigraph: originGraph.isMultigraph()
});
var nodes = originGraph.nodes();
for (var i = 0; i < nodeCount; i++) {
var nodei = nodes[i];
complementGraph.setNode(nodei, originGraph.node(nodei));
for (var j = i + 1; j < nodeCount; j++) {
var nodej = nodes[j];
if (!originGraph.hasEdge(nodei, nodej)) {
complementGraph.setEdge(nodei, nodej);
}
}
}
return complementGraph;
};