我正在创建一个工具,用于将 Python 项目显示为 UML 图(+ 使用 GUI 显示一些代码错误检测)
我使用 Pyreverse 扫描了一些项目,我拥有绘制 UML 图所需的所有数据。问题是类框在画布上的定位
首先,我决定使用已经实现的基于力的算法来决定类的位置,它工作得很好这是结果 https://github.com/jvorcak/gpylint/blob/master/screenshots/gpylint.png 和这里代码(Python ,但即使对于非 Python 程序员也很容易理解)
有一个问题,它非常适合显示图表,但是如果我想显示 UML,我希望有一些增强,例如,如果 2 个类扩展一个超类,我希望它们在图表中处于同一级别就像点程序生成的图表一样
你能告诉我一个算法如何做到这一点吗?或者至少给我一些想法?