feat: add graphviz layout
graphviz 布局效果好很多(对比 dagre),要考虑加上么
graphviz 布局效果好很多(对比 dagre),要考虑加上么
加!有效果对比图吗
tl;dr; 是否存在环,对 dagre 的影响很大,可能会导致权重配置不会被严格遵守,对比看 graphviz 可以表现的非常稳定
对比图中,前两个分别是 dagre v1/v2 的效果,相同配置下,效果一致,图三中是相同配置下效果下,graphviz 的表现
算法对比
| 对比维度 | dagre (旧版) & @dagrejs/dagre (新版) | graphviz dot |
|---|---|---|
| 预览效果 | ||
| 干预能力详述 | 有限权重调整 多级对齐方式 边路由控制点 增量更新回调 | 弹性权重调整 子图独立参数 边约束规则 模拟退火参数 |
| 算法类型 | Sugiyama 4 步算法: 去环 -> 分层 -> 排序 -> 定位 | Sugiyama + 弹性权重优化 |
| 层级分配算法 | 贪心法:局部最优解快速逼近 Default: network-simplex Longest-path 初始化最长路径分配 feasibleTree 构建连通树 Tight-tree 构建紧致树 Network-simple 网络单形算法 支持曲线和控制点 | 权重优先反馈弧集移除:最小化破坏环的成本 网络单形+加权全局优化 自动优化折线角度 (Orthogonal) |
| 布局速度(100节点) | 30-70ms | 200ms+ |
| 布局紧凑度 | 相对紧凑、清晰但有长边问题 | 布局较完美 |
| 边交叉率 | <10% | <5% |
| 核心优点 | 紧凑布局 增量更新 虚拟节点优化 | 全局最优解 子图独立 边路由美观 |
| 核心缺点 | 长边过多 边交叉较多 无法精准控制主路径渲染 | 性能一般 陡峭学习曲线 |
效果挺好的,我看你放在 layout-wasm 包下,有时间挪到 layout 下不~
效果挺好的,我看你放在 layout-wasm 包下,有时间挪到 layout 下不~
周末可以搞一下
另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去
另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去
另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去
嗯嗯晚点看下这个布局的实现。另外本周会补一下贡献文档,晚点贴在评论区~
👍
---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2025年12月23日 19:06 | | 收件人 | @.> | | 抄送至 | @.>@.> | | 主题 | Re: [antvis/layout] feat: add graphviz layout (PR #246) | yvonneyx left a comment (antvis/layout#246)
另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去
另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去
嗯嗯晚点看下这个布局的实现。另外本周会补一下贡献文档,晚点贴在评论区~
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>