私は現在、複数の2Dレイヤーをレンダリングできるナビゲート可能な3Dシーンを実装する可能性を評価しています。もう少し正確に言うと、3D環境で複数のグラフを表示して、それらのグラフ間の類似点と相違点を特定したいと思います。次のスクリーンショットを考慮すると、2つのグラフ(1つは黒、もう1つは灰色)があります。これらは同等です。グラフが異なると、逸脱したノードが赤で強調表示される場合があります。
私はQtのGraphicViewFrameworkQGraphicsScene
を使用しておりQGraphicsItem
、このプロジェクトとは別に、とを使用して編集可能なグラフエディターを確立しました。
QtはOpenGLサポートを提供します。たとえば、QGLWidget
提供された例を見てみました。私はOpenGLを使ったことがないので(Java3Dを使って作業したこともあります)、経験を共有できる人がいたらいいのにと思います。
いくつかの解決策が思い浮かびました。
- すべて
QGraphicsView
をaQPixmap
にレンダリングし、3Dで表示します。これにより、グラフはナビゲート可能になりますが、要素の選択などは禁止されます。 - すべての2Dグラフ要素に対して同等の3D要素を作成し、すべて
QGraphicsView
を3D表現に「変換」します。これはかなりの作業になると思います(特に、OpenGLを使用したことがないため) - たぶん、多くの適応なしでs
QGraphicScene
、ビュー、またはsだけを「配置」し、それでも通常の「mouseclickevents」などを登録する簡単な方法があります。QGraphicsItem
QGLWidget
最初の実装では、異なるレイヤーに複数のグラフを表示する、単純なナビゲート可能な「ビューアー」で十分です。ただし、将来的にピッキングなどを追加するために、拡張可能にしておく必要があります。