Qt图形绘制

4
我最近开始开发一个需要可视化图表的项目,我正在寻找一个合适的算法来解决这个问题。
我正在绘制的图表模拟数据流,因此合理的绘制方式可以是从左到右或从上到下。当然,它们是有向的并且大部分无环--也就是说,可能会有一些反向的边,但这只占很小的比例,如果有一个DAG作为输入会显著提高运行时,我将很乐意在计算顶点位置之前移除这些。
我正在使用C++和Qt进行开发,并已经非常熟悉Qt提供的弹性节点和示例图场景。如果有人看过KCacheGrind,我所尝试做的类似于其调用图形可视化。
我的当前尝试包括一种原始算法,该算法根据每个节点到根的最小距离将每个节点分配到层中,然后尝试在每个层内以尽量减少边交叉的方式定位节点。我无法正确地实现最后一部分,我认为这个问题是NP难的。
我要寻找的是关于过去如何有效解决这个问题的算法方面的指导。

也请查看这个帖子 - http://stackoverflow.com/questions/9712559/dag-directed-acyclic-graph-qabstractitemmodel - Maxim Makhun
我不确定为什么这个问题被搁置了。我认为我已经表达得足够清楚,我正在寻求算法建议;我提到库只是作为次要的,可以看作是一个现成的资源,我可以检查并学习其代码。尽管如此,我已经编辑了我的帖子以澄清这个区别。 - Alex Reinking
你自己尝试了哪些代码? - László Papp
1个回答

3

使用QtQuick2和新的屏幕图形API不是可以实现吗?QGraphicsView框架有些过时了。 - László Papp
我同意QGraphicsView框架相当老旧。在QtQuick 2中,可以使用QQuickView代替QGraphicsView。尽管我认为在QML中进行开发需要更多的时间。 - Maxim Makhun
我原本计划使用QGraphicsScene,因为它似乎很简单... 它有什么过时的地方? 有什么替代品? - Alex Reinking

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接