我目前正在评估实现可导航 3D 场景的可能性,该场景允许渲染多个 2D 图层。更准确地说,我想在 3D 环境中显示多个图形,以查明这些图形之间的相似性和差异。考虑以下屏幕截图,将有两个图形(一个黑色,一个灰色),它们是等效的 - 对于不同的图形,异常节点可能,即以红色突出显示。
我正在使用 Qt 的图形视图框架QGraphicsScene
并使用和几个s建立了一个可编辑的图形编辑器QGraphicsItem
,我将其与这个项目分开。
Qt 提供了OpenGL 支持,例如,QGLWidget
我查看了提供的示例。鉴于我没有使用 OpenGL(尽管我使用 Java3D 进行了一些工作),如果有人可以分享他们的经验,我会很高兴。
我想到了几个解决方案:
- 将每个渲染
QGraphicsView
到 aQPixmap
并以 3D 显示它们,这将使图形可导航,但会禁止选择任何元素等。 - 为每个 2D 图形元素创建一个等效的 3D 元素,并将每个元素“转换”
QGraphicsView
为 3D 表示。我想这将是一项相当大的工作(尤其是因为我没有使用 OpenGL) - 也许有一种简单的方法可以“放置”
QGraphicScene
s、视图或只是 a 中的QGraphicsItem
sQGLWidget
而无需进行很多调整,并且仍然注册通常的“mouseclickevents”等。
对于第一个实现,在不同层显示多个图形的普通导航“查看器”就足够了。但我想保持它的可扩展性,以便将来添加,例如,挑选。