Комментарии 21
НЛО прилетело и опубликовало эту надпись здесь
Потребности в приложении не испытываю, но симпатичный интерфейс, векторная графика схем и наличие английского языка вызывают желание поискать ему применение.
Иконка ужасна, английский хотелось бы по-умолчанию, а «кастомизацию» лучше всё-таки заменить на «настройку». С переводом на немецкий могу помочь (пока что он у вас очень… своеобразный ;).
Иконка ужасна, английский хотелось бы по-умолчанию, а «кастомизацию» лучше всё-таки заменить на «настройку». С переводом на немецкий могу помочь (пока что он у вас очень… своеобразный ;).
Глупый вопрос. А вы помогли автору задокументировать то, что вам не хватало?
ну это тяжело выделить в страницу формальной документации. фактически это и есть назначение данной публикации
Знаю, что трудно. Но это было бы намного ценнее.
Кстати, нигде не нашёл исходников. Выглядит красиво, но под мои нужды не очень подходит. На базе вашей программы можно попробовать сделать красивую mind-map программу.
Может быть хотя бы куски реализации графики опубликуете? Классы для qt там…
Кстати, нигде не нашёл исходников. Выглядит красиво, но под мои нужды не очень подходит. На базе вашей программы можно попробовать сделать красивую mind-map программу.
Может быть хотя бы куски реализации графики опубликуете? Классы для qt там…
если у кого-то будет интерес, и у меня силы — то я смогу выдрать реализацию diagram_scene со всей обвязкой, и сделать соответствующий разъясняющий пост. Фактичкски, это сцена, в которой можно выделять объекты, перемещать, и соединять. Но пока это все в таком экспериментальном состоянии, что местами даже стыдно показывать. Поэтому этот материал пока не созрел.
У вас есть серьезные трудности с оптимальностью кода.
1) Векторы и push_back, или «автор не знает о resize»
Многократный вызов push_back здесь неуместен (будут переаллокации). Лучше сделать resize заранее:
2) А вот тут уже серьезный источник проблем с производительностью:
Честно говоря, это абсурд. Потому что вы для контейнера с логарифмическим поиском (map) вызываете линейный поиск.
Ну и (хотя бы во время отладки) имеет смысл проверять, не вернул ли find конец контейнера. И использовать константные декларации.
1) Векторы и push_back, или «автор не знает о resize»
std::vector<pos_t> path;
for (size_t i = 0; i < route.ps.size(); ++i)
path.push_back(pos_t(route.ps[i].x, route.ps[i].y));
Многократный вызов push_back здесь неуместен (будут переаллокации). Лучше сделать resize заранее:
std::vector<pos_t> path;
path.resize(route.ps.size());
for (size_t i = 0; i < route.ps.size(); ++i)
path[i]=pos_t(route.ps[i].x, route.ps[i].y);
2) А вот тут уже серьезный источник проблем с производительностью:
auto it = std::find(nodes.begin(), nodes.end(), p_node);
Честно говоря, это абсурд. Потому что вы для контейнера с логарифмическим поиском (map) вызываете линейный поиск.
Ну и (хотя бы во время отладки) имеет смысл проверять, не вернул ли find конец контейнера. И использовать константные декларации.
трудностей нету, здесь было целью наглядно и просто показать. поэтому упрощал как мог.
1) код выполняется редко, и потери ничтожны по сравнению с работой маршрутизации
2) nodes вообще-то вектор. можно сделать map-индексы, но код сложней воспринимать.
1) код выполняется редко, и потери ничтожны по сравнению с работой маршрутизации
2) nodes вообще-то вектор. можно сделать map-индексы, но код сложней воспринимать.
Мне кажется, что тут оптимально будет вызывать не resize() + push_back(), а reserve() + emplace_back() — нет лишних копирований и вызовов дефолтных конструкторов, еще и перемещение в push_back() экономится.
Поискал на сайте и в gihub-репозитории, но не нашёл, какая у библиотеки лицензия. Вы не в курсе?..
Это ж то же самое, что трассировка проводников на печатных платах?
Программа интересная, хочется попробовать. Но где найти сборку под Ubuntu?
в этой версии пришлось пропустить линуху, т.к. сдался собрать под ней qt 5.7.1. В след. версии попробую разобраться с автоматизацией сборки под базовый набор линуховых веток, надеюсь за праздники разберусь.
Как можно будет узнать о выходе новой версии? Следить за блогом программы?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Маршрутизация ортогональных соединений в редакторах диаграмм