javascript - 类图——最优节点定位
问题描述
我正在尝试使用 d3.js 和 d3.dag 构建类图模型查看器
这个查看器最关键的部分是它应该能够优化定位节点,这样我们就不会发生链接交叉(只要可能),并且应该能够清楚地看到什么与什么相关联
我们知道:
- 每个节点的宽度
- 每个节点的高度
- 链接起始坐标
- 链接结束坐标
- 链接所有角坐标
我们想要:
查看连接结束(可以实现手动移动节点)。
尽量减少链接交叉(如果可能的话)
我需要的是理论上的。
是否有任何已知的算法可以解决上述问题(语言无所谓,我只需要理论参考)
下面举个例子
- 目前情况如何
- 我自己能达到什么
- 什么是完美的
示例 1。
当前的
可实现的
完美的
示例 2。
当前的
可实现的
完美的
示例 3。
当前的
可实现且完美
例 4。
当前的
可实现的
完美的
例 5。
当前的
可实现的
完美的
例 6。
当前的
完美的
更新
在这种情况下,传统的(节点到节点链接)交叉已经最小化(感谢 d3-dag)。问题是我们没有唯一的节点到节点关系,我们还有一个节点行到行的关系,在这种情况下,d3-dag 失败
解决方案
推荐阅读
- python - 数据帧考拉到增量表:错误:调用 o237.save 时发生错误
- javascript - 将 JSON 文件转换为 Javascript 对象
- unity3d - 可交互脚本允许“手跟随变换”,默认为附加对象的变换,忽略偏移
- python - 我们如何编写一个什么都不捕获的`except`语句?
- java - test 和 src 目录/代码之间的区别在 test 文件夹中不起作用
- javascript - 部署应用后如何在 Webpack.config.js 中配置代理 url?
- python - store new values at every index of an empty matrix by implementing a nested for loop
- python - 使用 StellarGraph 创建嵌入是不可重现的
- powerbi - 按多列分组并聚合所有值
- c - 如何使用星号绘制“W”字母