- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs
Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import Base, { IPluginBaseConfig } from '../base';
|
|
import { IEdge, GraphData, NodeConfig } from '@antv/g6-core';
|
|
import { Point } from '@antv/g-base';
|
|
interface BundlingConfig extends IPluginBaseConfig {
|
|
edgeBundles?: IEdge[];
|
|
edgePoints?: NodeConfig[];
|
|
K?: number;
|
|
lambda?: number;
|
|
divisions?: number;
|
|
divRate?: number;
|
|
cycles?: number;
|
|
iterations?: number;
|
|
iterRate?: number;
|
|
bundleThreshold?: number;
|
|
eps?: number;
|
|
onLayoutEnd?: () => void;
|
|
onTick?: () => void;
|
|
}
|
|
interface VectorPosition {
|
|
source: {
|
|
x: number;
|
|
y: number;
|
|
};
|
|
target: {
|
|
x: number;
|
|
y: number;
|
|
};
|
|
vx: number;
|
|
vy: number;
|
|
length: number;
|
|
}
|
|
export default class Bundling extends Base {
|
|
constructor(config?: BundlingConfig);
|
|
getDefaultCfgs(): BundlingConfig;
|
|
init(): void;
|
|
bundling(data: GraphData): void;
|
|
updateBundling(cfg: BundlingConfig): void;
|
|
divideEdges(divisions: number): Point[][];
|
|
/**
|
|
* 计算边的长度
|
|
* @param points
|
|
*/
|
|
getEdgeLength(points: Point[]): number;
|
|
getEdgeBundles(): number[];
|
|
getBundleScore(ei: any, ej: any): number;
|
|
protected getAngleScore(ei: VectorPosition, ej: VectorPosition): number;
|
|
protected getScaleScore(ei: VectorPosition, ej: VectorPosition): number;
|
|
protected getPositionScore(ei: VectorPosition, ej: VectorPosition): number;
|
|
protected getVisibilityScore(ei: VectorPosition, ej: VectorPosition): number;
|
|
protected getEdgeVisibility(ei: VectorPosition, ej: VectorPosition): number;
|
|
protected getEdgeForces(e: any, eidx: number, divisions: number, lambda: number): Point[];
|
|
protected getSpringForce(divisions: any, kp: number): Point;
|
|
protected getElectrostaticForce(pidx: number, eidx: number): Point;
|
|
isTicking(): boolean;
|
|
getSimulation(): any;
|
|
destroy(): void;
|
|
}
|
|
export {};
|