Название: Рисование Отправлено: deaks от Апрель 26, 2011, 10:51 Добрый день!
с помощью QGraphicsLineItem рисую график осциллографа во времени(то есть с каждым шагом к старым значениям добавляется новое). при этом мне необходимо этот динамический график вращать и сдвигать. сейчас я все это делаю, путем пересчет всех предыдущих значений графика для определенного угла и смещения, что совсем неправильно. или как-то объединять объекты в группу, чтобы для них всех вместе делать ->setRotate() как для обычного итема. как лучше сделать? Название: Re: Рисование Отправлено: madRoger от Апрель 26, 2011, 11:03 Посмотрите на QGraphicsItemGroup.
А вообще для работы с графиками есть библиотека qwt. Название: Re: Рисование Отправлено: deaks от Апрель 26, 2011, 11:09 про qwt знаю, но в данном случае он не подходит
Название: Re: Рисование Отправлено: deaks от Апрель 26, 2011, 11:18 с QGraphicsItemGroup хорошая идея, только вот как быть, если я отрисовал 10 отрезков графика, добавил их в группу. а потом ее повернул и сдвинул. то как потом к этому добавлять 11ый отрезок?мне ведь надо чтобы график непрерывно вращался и при этом он "рос" со временем
может есть возможность рисовать в определенной области с локальными координатами, а потом эту область вращать и сдвигать в глобальной? Название: Re: Рисование Отправлено: madRoger от Апрель 26, 2011, 12:30 Цитировать может есть возможность рисовать в определенной области с локальными координатами, а потом эту область вращать и сдвигать в глобальной? Для ентого есть куча методов для преобразования координат: mapTo.... mapFrom.... Название: Re: Рисование Отправлено: deaks от Апрель 26, 2011, 13:40 так у меня сейчас все эти объекты принадлежат одной сцене. то есть несколько графиков в одной сцене.
а как вы подразумеваете? Название: Re: Рисование Отправлено: madRoger от Апрель 26, 2011, 13:48 Я поэкспериментировал с итемами. Подергал преобразования координат. Я вообще раньше с ними не работал. Посмотрите на этот код, может натолкнет на какие-нить мысли:
Код: sc = new QGraphicsScene(this); Или я все не так понял... UPD: вместо: Код: p1 = ig->mapToScene(ig->mapFromItem(ig,QPointF(1,100))); можно проще: Код: p1 = ig->mapToScene(QPointF(1,100)); Название: Re: Рисование Отправлено: deaks от Апрель 26, 2011, 14:23 Или я все не так понял... вы правильно поняли меня)) огромное вам спасибо! |