Название: циклограмма Отправлено: deMax от Июнь 20, 2017, 14:57 Собственно есть ли готовое решение?
В принципе в старой программе у меня был собственный виджет который реализовывал циклограмму. Вот думаю может есть готовые решения? Название: Re: циклограмма Отправлено: __Heaven__ от Июнь 20, 2017, 17:43 QwtPolar для этого не предназначен?
Название: Re: циклограмма Отправлено: deMax от Июнь 21, 2017, 12:37 QwtPolar для этого не предназначен? Полярная система координат не требуется.По сути циклограмма это таблица с масштабированием и прокруткой (масштаб - показывать на экране от часа до недели из нескольких лет), и блоками которые говорят что объект из соответствующей строки в это время что то делает. Название: Re: циклограмма Отправлено: Igors от Июнь 21, 2017, 13:15 Типичный процесс поиска заканчивающийся банальным "ото брать QPainter и делать" - вряд ли увидим что-то новое, скорее сколько времени пройдет пока "созреет". Ладно, посмотрим
Название: Re: циклограмма Отправлено: deMax от Июнь 21, 2017, 13:46 Ну задача относительно типовая, в принципе то что у меня есть на QPainter и так хорошо работает. Поиск альтернатив чтобы найти интересные идеи или полностью взять.
Название: Re: циклограмма Отправлено: __Heaven__ от Июнь 21, 2017, 14:20 Можно глянуть пример вашей циклограммы?
Название: Re: циклограмма Отправлено: deMax от Июнь 28, 2017, 10:41 как то так
Название: Re: циклограмма Отправлено: __Heaven__ от Июнь 29, 2017, 10:06 Посмотрел Qwt на этот счёт. Единственное, что из него мне удалось выжать это модификация barchart.
Код
Название: Re: циклограмма Отправлено: Racheengel от Июнь 29, 2017, 10:37 а просто таблицу взять чем не вариант?
ну зум придется "ручками" сделать - но думаю, что не особо проблемно это,не? Название: Re: циклограмма Отправлено: deMax от Июль 03, 2017, 09:32 В принципе меня таблица устроит, только ширина ячеек вариативная, от секунд до года. Ну и в масштабе 1 секунда, ячеек будет очень много - не начнет ли эта штука тормозить?
Название: Re: циклограмма Отправлено: Igors от Июль 03, 2017, 10:02 Анекдот времен военной кафедры
Цитировать Одну и ту же работу дали семи солдатам и семи инженерам. Семеро солдат взяли и до обеда сделали. А семь инженеров до вечера обсуждали как сделать лучше - но работа даже не была начата Название: Re: циклограмма Отправлено: gil9red от Июль 03, 2017, 10:26 Анекдот времен военной кафедры Цитировать Одну и ту же работу дали семи солдатам и семи инженерам. Семеро солдат взяли и до обеда сделали. А семь инженеров до вечера обсуждали как сделать лучше - но работа даже не была начата Перефразирую: пусть хоть будет костыль на костыле из говна и палок, но работающий, а улучшить или переделать можно и после Название: Re: циклограмма Отправлено: Igors от Июль 03, 2017, 12:39 ...хоть будет костыль на костыле из говна и палок... Почему любой самостоятельный код обязательно плох? Что за постыдная философия офисного планктона? :)Название: Re: циклограмма Отправлено: gil9red от Июль 03, 2017, 13:59 ...хоть будет костыль на костыле из говна и палок... Почему любой самостоятельный код обязательно плох? Что за постыдная философия офисного планктона? :)Потому что в вашем примере солдаты сделают на отъебись (костыль на костыле из ...), а инженеры так что было на века, с расширяемое архитектурой и прочее, прочее И то, и другое не лучшее решение, нужно искать золотую середину :) Название: Re: циклограмма Отправлено: deMax от Июль 07, 2017, 11:40 Свою старую взял, думаю оптимальнее будет, таблица не совсем удовлетворяет.
собственно, есть строки(с названиями объектов и прочими атрибутами), а есть блоки на циклограмме, допустим каждый блок имеет следующие данные: номер строки, время начала, время конца, цвет(или другие атрибуты). Циклограмма умеет перемещаться в текущее время(и показывать новые данные) или перемещаться в заданное время. Вся циклограмма в памяти не поместиться(достаточно хранить то что на экране и за краями, максимум месяц). Как оптимальнее хранить блоки? Имхо отсортировать QList и рисуем начиная от блока у которого конец левее левой части виджета, до блока у которого начало правее. Но поиск по QList не особо быстр, QMap хранит в красно-черном дереве и вставки не особо быстрые. С другой стороны данных за месяц вряд ли будет больше миллиона, и все это не такое и узкое место. т.е. нужен контейнер в котором хранятся блоки(у каждого блока есть начало и конец) и нужно быстро определить все блоки которые входят в заданный интервал(видны на экране). И второе нужно уметь добавлять блоки в этот контейнер(желательно побыстрее, но не так критично как рисование). |