antvis / antvis/layout

可以提供正交布局(Orthogonal layout)算法吗

Open
#129 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
276
Forks
60
PR merge metrics
No merged PRs in 30d

Description

效果可参考yFiles的正交布局算法:https://live.yworks.com/demos/layout/layoutstyles/
image

关键要求:
1. 节点和节点之间的连线是直线或正交直角连线
2. 连线尽量避免交叉,某些场景下可以使用正交自动布局实现连线0交叉,比如小数据量的ER图、关系图谱等
3. 连线转折点不超过2个
4. 主要应用在非大数据场景(X6)

尝试过ERLayout,发现效果并不好:
0. ERLayout的options如果width、height和最小nodeSize没有控制好,会导致GridLayout无法绘制足够的网格来摆放所有节点,layout算法没有做检查,控制台报错信息也不清晰,需要深入debug才能找到原因
1. 节点位置是根据GridLayout实现,并且算出来的结果并不稳定,每次都有可能有差异
2. 连线没有避免交叉,这样即使设置连线为正交也会交叉
3. erlayout里面有一个mysqlWorkbench.ts,不知道是不是实现了MySQL Workbench ER图自动布局的算法,如果是有使用方法吗?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.