Skip to content

Conversation

@prgrmrwy
Copy link

@prgrmrwy prgrmrwy commented Jul 6, 2025

No description provided.

@prgrmrwy prgrmrwy changed the title add graphviz layout feat: add graphviz layout Jul 6, 2025
@prgrmrwy
Copy link
Author

graphviz 布局效果好很多(对比 dagre),要考虑加上么

@yvonneyx
Copy link
Collaborator

graphviz 布局效果好很多(对比 dagre),要考虑加上么

加!有效果对比图吗

@prgrmrwy
Copy link
Author

prgrmrwy commented Dec 23, 2025

tl;dr;
是否存在环,对 dagre 的影响很大,可能会导致权重配置不会被严格遵守,对比看 graphviz 可以表现的非常稳定

对比图中,前两个分别是 dagre v1/v2 的效果,相同配置下,效果一致,图三中是相同配置下效果下,graphviz 的表现

算法对比

对比维度 dagre (旧版) & @dagrejs/dagre (新版) graphviz dot
预览效果 image
干预能力详述 有限权重调整 多级对齐方式 边路由控制点 增量更新回调 弹性权重调整 子图独立参数 边约束规则 模拟退火参数
算法类型 Sugiyama 4 步算法: 去环 -> 分层 -> 排序 -> 定位 Sugiyama + 弹性权重优化
层级分配算法 贪心法:局部最优解快速逼近 Default: network-simplex Longest-path 初始化最长路径分配 feasibleTree 构建连通树 Tight-tree 构建紧致树 Network-simple 网络单形算法 支持曲线和控制点 权重优先反馈弧集移除:最小化破坏环的成本 网络单形+加权全局优化 自动优化折线角度 (Orthogonal)
布局速度(100节点) 30-70ms 200ms+
布局紧凑度 相对紧凑、清晰但有长边问题 布局较完美
边交叉率 <10% <5%
核心优点 紧凑布局 增量更新 虚拟节点优化 全局最优解 子图独立 边路由美观
核心缺点 长边过多 边交叉较多 无法精准控制主路径渲染 性能一般 陡峭学习曲线

@yvonneyx
Copy link
Collaborator

yvonneyx commented Dec 23, 2025

效果挺好的,我看你放在 layout-wasm 包下,有时间挪到 layout 下不~

@prgrmrwy
Copy link
Author

效果挺好的,我看你放在 layout-wasm 包下,有时间挪到 layout 下不~

周末可以搞一下

@prgrmrwy
Copy link
Author

另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去

@yvonneyx
Copy link
Collaborator

另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去

另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去

嗯嗯晚点看下这个布局的实现。另外本周会补一下贡献文档,晚点贴在评论区~

@prgrmrwy
Copy link
Author

prgrmrwy commented Dec 23, 2025 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants