可以提供正交布局(Orthogonal layout)算法吗
Open
- Dominant language
- TypeScript
- Stars
- 276
- Forks
- 60
- PR merge metrics
- No merged PRs in 30d
Description
效果可参考yFiles的正交布局算法:https://live.yworks.com/demos/layout/layoutstyles/

关键要求:
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
Assessment
This issue has not been assessed yet.