Название: 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 Добрый вечер QGraphicsScene описывет 2D-сцену. Как ты планируешь разместить на ней 3D примитивы?Задача: имею набор 3D примитивов, хочу отображать их в 3 проекциях Top, Front, Side. Разумно создать один QGraphicsScene и добавить в него все примитивы. Затем этот указатель на QGraphicsScene вставить в 3 QGraphicsView. Вопрос(ы): что мне делать с QGraphicsItem::boundingRect() который здесь должен возвращать разные QRect для разных проекций (QGraphicsView) ? Спасибо Название: 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) работать будет, так ведь прийдется бегать между ними и синхронизировать каждую операцию добавить/удалить/выделить. |