1

我目前正在评估实现可导航 3D 场景的可能性,该场景允许渲染多个 2D 图层。更准确地说,我想在 3D 环境中显示多个图形,以查明这些图形之间的相似性和差异。考虑以下屏幕截图,将有两个图形(一个黑色,一个灰色),它们是等效的 - 对于不同的图形,异常节点可能,即以红色突出显示。

3d 中的两个图形

我正在使用 Qt 的图形视图框架QGraphicsScene并使用和几个s建立了一个可编辑的图形编辑器QGraphicsItem,我将其与这个项目分开。

Qt 提供了OpenGL 支持,例如,QGLWidget我查看了提供的示例。鉴于我没有使用 OpenGL(尽管我使用 Java3D 进行了一些工作),如果有人可以分享他们的经验,我会很高兴。

我想到了几个解决方案:

  1. 将每个渲染QGraphicsView到 aQPixmap并以 3D 显示它们,这将使图形可导航,但会禁止选择任何元素等。
  2. 为每个 2D 图形元素创建一个等效的 3D 元素,并将每个元素“转换”QGraphicsView为 3D 表示。我想这将是一项相当大的工作(尤其是因为我没有使用 OpenGL)
  3. 也许有一种简单的方法可以“放置” QGraphicScenes、视图或只是 a 中的QGraphicsItemsQGLWidget而无需进行很多调整,并且仍然注册通常的“mouseclickevents”等。

对于第一个实现,在不同层显示多个图形的普通导航“查看器”就足够了。但我想保持它的可扩展性,以便将来添加,例如,挑选。

4

1 回答 1

0

Qt3D项目提供了一个名为QGraphicsEmbedScene的,它完全符合您的要求。

于 2011-11-02T10:18:53.697 回答