Название: Отрисовка графика функции [Qt-4.2.2] Отправлено: Skor от Апрель 23, 2007, 16:37 Доброго времени суток. В программировании на Qt являюсь новичком с недельным опытом работы, за прошедшее время попытался разобраться в особенностях новой для меня библиотеки.
Господа, передо мною стоит задача, которую необходимо решить с использованием Qt в сжатые сроки: отрисовать график сложной функции (с возможостью масштабирования, вывода на печать и пр). На данный момент имею представление об общих принципах работы библиотеки, концепции, некоторых простых классов (что приблизительно соответствует первой части книги Бланшет - Basic Qt). Беглый осмотр содержания выявил класс QPainter, который, возможно, станет ключем к решению проблемы :-) К сожалению, не имею достаточно времени чтобы полностью во всем разобраться и дать самому себе исчерпывающие ответы на все вопросы, поэтому хочу спросить совета у более опытных разработчиков: 1. Есть ли средства, упрощающие/оптимизирующие процесс построения графиков в QT? 2. Является ли класс QPainter хорошим способом решения проблемы? 3. Является ли Qt подходящим инструментом для решения в принципе? 4. Ваш совет Зарание благодарен Название: Отрисовка графика функции [Qt-4.2.2] Отправлено: bigirbis от Апрель 23, 2007, 16:43 Рекомендую посмотреть в сторону Qwt:
http://sourceforge.net/projects/qwt Название: Отрисовка графика функции [Qt-4.2.2] Отправлено: Racheengel от Апрель 24, 2007, 00:21 +1
Название: Отрисовка графика функции [Qt-4.2.2] Отправлено: goer от Апрель 24, 2007, 11:46 QWT прекрасна спору нет, но надо смотеть на задачу. Я например заюзал эту либу, но мне кроме кривых и объемных гистограм, нужно еще рисовать круговые объемные диаграммы. QWT на данный момент этого не реализует.
Вобщем смотри по требованиям к задаче. Ну и еще у этой либы не очень приятная иерархия классов. Название: Отрисовка графика функции [Qt-4.2.2] Отправлено: Alex Forth от Апрель 24, 2007, 12:04 Цитата: "goer" нужно еще рисовать круговые объемные диаграммы. QWT на данный момент этого не реализует. А как насчет этого: http://qwtplot3d.sourceforge.net/ Цитата: "goer" Ну и еще у этой либы не очень приятная иерархия классов. Шо есть, то есть :cry: Название: Отрисовка графика функции [Qt-4.2.2] Отправлено: Racheengel от Апрель 25, 2007, 00:51 да уж, классы конечно там жутко сделаны... да и скорость не очень для больших графиков, нам как-то пришлось патчить это дело...
на www.ii-system.com лежит прога InSense2005 в сырцах, с ускоренными графиками, если надо, берите, смотрите... Название: Отрисовка графика функции [Qt-4.2.2] Отправлено: Alex Forth от Апрель 25, 2007, 09:03 Спасибо, на досуге порасматриваю вашу реализацию.
А можно roadmap - за счет чего разгоняли, чего подпадчили? Название: Отрисовка графика функции [Qt-4.2.2] Отправлено: Racheengel от Апрель 25, 2007, 23:02 QWT рисует графики по набору точек, соединяя их линиями. Мы перед отрисовкой выкидывали из наборов точки, которые совпали бы на экране. Получалось намного быстрее.
Название: Re: Отрисовка графика функции [Qt-4.2.2] Отправлено: m_ax от Апрель 28, 2011, 01:12 Понимаю что разговариваю сам с собой... но всетки уже доведу до конца, что сказал... Вот продолжение.. отредактированы графики линий, и сделал горизонтальные столбцы... Ограничение на те и на другие, что не больше 5-ти элементов должно отображаться... Поскольку в вызовах этих процедур достаточно много входных параметров, проще будет написать какой-нить редактор для пользования их... у меня есть такой, и просто все это делается для того чтобы в него потом впихнуть.... В общем доделаю остальные графики, и тогда уже последнюю версию положу... как всегда, мало ли кому пригодится... У вас утечка в методе Код а именно здесь: Код и ниже здесь: Код У вас каждый раз как вызывается этот слот slotDoIt вновь создаётся в куче MyGraphics (имхо название как то не очень серьёзно)) но нигде не уничтожается. Да создайте вы его один раз в конструкторе, а деструкторе уничтожте. Имхо, лучше сделать полноценный класс для отрисовки графиков (полноценный виджет в смысле), а не сомнительный MyGraphics всего с двумя методами, в каждый из которых нужно передавать туеву хучу непонятных параметров. Название: Re: Отрисовка графика функции [Qt-4.2.2] Отправлено: m_ax от Апрель 28, 2011, 12:45 У вас ещё в одном месте течёт:
Код Нигде не уничтожаются и каждый раз при вызове line2dGraphics вновь создаются. Вобщем пока ещё опасно юзать ваше тварение) Название: Re: Отрисовка графика функции [Qt-4.2.2] Отправлено: xokc от Апрель 28, 2011, 17:38 И врядли оно както опасно себя поведет))... Оно уже крайне опасно себя ведёт.но, как известно существуют механизмы сбора мусора... ну и если вообще на все закрыть глаза и просто выделять, выделять,выделять,выделять,выделять,выделять,выделять,выделять,выделять,выделять,выделять память))) это сколько ж нужно сделать таких операций, чтобы вообще заметить что "течет")) Вернитесь назад в шарп или яву - к сборщикам мусора и программированию мышкой. Если бы я был Вашим заказчиком на дал бы и рубля за такую реализацию.Название: Re: Отрисовка графика функции [Qt-4.2.2] Отправлено: BaHeK от Апрель 29, 2011, 08:12 ...Если бы я был Вашим заказчиком на дал бы и рубля за такую реализацию... Вы вообще читать умеете? Заказчиком.. рубля... это все сделано в сумме за 2 часа... ито, потому что математика больше времени отняла... Вы блин вообще думаете что говорите? Третий раз повторяю, это все на очень скорую руку! Если бы нужно было сделать профессиональный класс, это блин и ежику понятно что такая реализация вообще и гроша не стоит! Я прям знал, что такие вот найдутся)) Не нравится, не ешь)) И вообще, чего я буду распинаться тут)) Название: Re: Отрисовка графика функции [Qt-4.2.2] Отправлено: m_ax от Апрель 29, 2011, 12:27 ...Если бы я был Вашим заказчиком на дал бы и рубля за такую реализацию... Вы вообще читать умеете? Заказчиком.. рубля... это все сделано в сумме за 2 часа... ито, потому что математика больше времени отняла... Вы блин вообще думаете что говорите? Третий раз повторяю, это все на очень скорую руку! Если бы нужно было сделать профессиональный класс, это блин и ежику понятно что такая реализация вообще и гроша не стоит! Я прям знал, что такие вот найдутся)) Не нравится, не ешь)) И вообще, чего я буду распинаться тут)) Зачем тогда выкладывать сомнительные поделки, сделаные наспех и несущих потенциальную опасность при их использовании? Я считаю, если выкладывать - то доведите вначале всё до ума, чтоб это было грамотно написано. Иначе рискуете, что вашим кодом никто никогда пользоваться не будет. |