1

私は現在、複数の2Dレイヤーをレンダリングできるナビゲート可能な3Dシーンを実装する可能性を評価しています。もう少し正確に言うと、3D環境で複数のグラフを表示して、それらのグラフ間の類似点と相違点を特定したいと思います。次のスクリーンショットを考慮すると、2つのグラフ(1つは黒、もう1つは灰色)があります。これらは同等です。グラフが異なると、逸脱したノードが赤で強調表示される場合があります。

3Dの2つのグラフ

私はQtのGraphicViewFrameworkQGraphicsSceneを使用しておりQGraphicsItem、このプロジェクトとは別に、とを使用して編集可能なグラフエディターを確立しました。

QtはOpenGLサポートを提供します。たとえば、QGLWidget提供された例を見てみました。私はOpenGLを使ったことがないので(Java3Dを使って作業したこともあります)、経験を共有できる人がいたらいいのにと思います。

いくつかの解決策が思い浮かびました。

  1. すべてQGraphicsViewをaQPixmapにレンダリングし、3Dで表示します。これにより、グラフはナビゲート可能になりますが、要素の選択などは禁止されます。
  2. すべての2Dグラフ要素に対して同等の3D要素を作成し、すべてQGraphicsViewを3D表現に「変換」します。これはかなりの作業になると思います(特に、OpenGLを使用したことがないため)
  3. たぶん、多くの適応なしでs QGraphicScene、ビュー、またはsだけを「配置」し、それでも通常の「mouseclickevents」などを登録する簡単な方法があります。QGraphicsItemQGLWidget

最初の実装では、異なるレイヤーに複数のグラフを表示する、単純なナビゲート可能な「ビューアー」で十分です。ただし、将来的にピッキングなどを追加するために、拡張可能にしておく必要があります。

4

1 に答える 1

0

Qt3Dプロジェクトは、QGraphicsEmbedSceneと呼ばれるクラスを提供します。このクラスは、まさにあなたが求めていることを実行します。

于 2011-11-02T10:18:53.697 に答える