Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Igors от Сентябрь 02, 2009, 20:51



Название: 3 QGraphicsView, 1 QGraphicsScene
Отправлено: Igors от Сентябрь 02, 2009, 20:51
Добрый вечер

Задача: имею набор 3D примитивов, хочу отображать их в 3 проекциях Top, Front, Side. Разумно создать один QGraphicsScene и добавить в него все примитивы. Затем этот указатель на QGraphicsScene вставить в 3 QGraphicsView.

Вопрос(ы): что мне делать с QGraphicsItem::boundingRect() который здесь должен возвращать разные QRect для разных проекций (QGraphicsView) ?

Спасибо


Название: Re: 3 QGraphicsView, 1 QGraphicsScene
Отправлено: BRE от Сентябрь 02, 2009, 22:23
Добрый вечер

Задача: имею набор 3D примитивов, хочу отображать их в 3 проекциях Top, Front, Side. Разумно создать один QGraphicsScene и добавить в него все примитивы. Затем этот указатель на QGraphicsScene вставить в 3 QGraphicsView.

Вопрос(ы): что мне делать с QGraphicsItem::boundingRect() который здесь должен возвращать разные QRect для разных проекций (QGraphicsView) ?

Спасибо
QGraphicsScene описывет 2D-сцену. Как ты планируешь разместить на ней 3D примитивы?


Название: Re: 3 QGraphicsView, 1 QGraphicsScene
Отправлено: Igors от Сентябрь 03, 2009, 11:28
[QGraphicsScene описывет 2D-сцену. Как ты планируешь разместить на ней 3D примитивы?
В изометрии не вижу разницы между 2D и 3D сценой  :) Примитивы очень простые: сплюснутые сфероиды. В виде сверху мне надо рисовать просто окружности, в остальных - эллипсы. Шейдить ничего не надо, с OGL связываться незачем. И все бы хорошо если б только знать в каком из 3 видов сейчас рисуем/выбираем   ;)


Название: Re: 3 QGraphicsView, 1 QGraphicsScene
Отправлено: ufna от Сентябрь 03, 2009, 12:24
Вопрос - как в двумерной сцене ты посмотришь на свой сфероид сбоку? :)

он ведь плоский. Если ты сделаешь вторую вьюшку, в которой даже задашь этот поворот, то максимум, что ты увидишь, это будет полосочка. Так что для каждой вьюшки нужен будет свой собственный айтем. А тогда это уже три сцены проще, чтобы косяков не было.


Название: Re: 3 QGraphicsView, 1 QGraphicsScene
Отправлено: Igors от Сентябрь 03, 2009, 13:05
Вопрос - как в двумерной сцене ты посмотришь на свой сфероид сбоку? :)

Да нормально смотрю  :)  У меня есть координата центра (x, y, z) и размеры по осям. Например если надо нарисовать его в виде сверху (это проекция на плоскость XZ) то и беру координаты/размеры XZ и рисую. Вид сбоку - то же самое только использую ZY. С этим проблем нет.
 
он ведь плоский. Если ты сделаешь вторую вьюшку, в которой даже задашь этот поворот, то максимум, что ты увидишь, это будет полосочка.
Мне их поворот на плоскости не нужен. Для поворота у меня есть своя матрица 4x4, я просто все координаты/вектора на нее помножу.

Так что для каждой вьюшки нужен будет свой собственный айтем. А тогда это уже три сцены проще, чтобы косяков не было.
То понятно что 3 QGraphicsScene (каждая со своими items) работать будет, так ведь прийдется бегать между ними и синхронизировать каждую операцию добавить/удалить/выделить.