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