В настоящее время я оцениваю возможности реализации навигационной 3D-сцены, которая позволяет отображать несколько 2D-слоев. Чтобы быть немного более точным, я хотел бы отобразить несколько графиков в трехмерной среде, чтобы точно определить сходства и различия между этими графиками. Судя по следующему снимку экрана, будет два графика (один черный, один серый), которые эквивалентны — для разных графиков девиантные узлы могут быть выделены красным цветом.
Я работаю с Qt Graphic View Framework и установил редактируемый графический редактор, используя QGraphicsScene
и несколько QGraphicsItem
ов, которые я отдельно от этого проекта.
Qt предоставляет поддержку OpenGL, например, QGLWidget
и я посмотрел на предоставленные примеры. Учитывая, что я не работал с OpenGL (хотя я немного работал с Java3D), я был бы рад, если бы некоторые люди могли поделиться своим опытом.
Мне пришло в голову несколько решений:
- Преобразуйте каждую
QGraphicsView
вQPixmap
и отобразите их в 3D, что позволит перемещаться по графикам, но запретит выбор элементов и т. д. - Создайте эквивалентный 3D-элемент для каждого элемента 2D-графика и «преобразуйте» каждый
QGraphicsView
в 3D-представление. Я думаю, это будет довольно много работы (особенно, поскольку я не работал с OpenGL) - Может быть, есть простой способ «поместить»
QGraphicScene
, представление или простоQGraphicsItem
вQGLWidget
без особых адаптаций и при этом зарегистрировать обычные «события мыши» и т. д.
Для первой реализации будет достаточно простого средства просмотра с возможностью навигации, которое отображает несколько графиков в разных слоях. Но я хотел бы сохранить его расширяемым, чтобы добавить, например, выбор в будущем.