2016-04-24 5 views
0

Я тестирую алгоритм, который находит кратчайший путь между двумя определенными вершинами в графе и дает список вершин после каждого поворота (фактически он дает три пути - один из них является кратчайшим путем на этом графике и два других являются дополнительными путями, которые также важны для нас и используются для дальнейших вычислений кратчайшего пути). На каждом повороте веса графов ребер так или иначе меняются, поэтому каждый поворот мы получаем новую тройку списков (путей). Я хотел бы визуализировать эволюцию этих путей путем рисования графика (этот график фактически представляет собой сетку, представляющую город, например, Нью-Йорк), и каждый вид пути будет представлен определенным цветом (так что на каждом повороте будет сетка с тремя цветными дорожками). Еще раз - на каждом повороте пути будут разными, поэтому картина изменится. Каков наилучший способ его представления? И еще один вопрос: иногда бывают края, которые принадлежат двум или, возможно, даже трем из этих патчей, и я хотел бы показать это, так что было бы неплохо, если бы была возможность окрасить этот край двумя/тремя цветами в один раз. Было бы идеально, если бы было возможно сделать его похожим на два/три более тонких края, вместе взятых, но я мог только найти ситуацию, когда мы рисуем несколько строк разного цвета, которые собираются последовательно (например: enter image description here). Есть ли способ сделать это первым путем?многоцветные края python

Прошу прощения за дискурсивность, но я никогда не занимался графикой на Python, и мне отчаянно нужна помощь. Благодаря!

ответ

0

Если вы хотите показать изображение в графическом интерфейсе, это зависит от инструментария GUI, который вы хотите использовать. В наборе Tkinter, который поставляется с большинством дистрибутивов Python, вы можете использовать виджет Canvas. Есть несколько учебников онлайн [1], [2]. Большинство инструментов GUI имеют аналогичную функциональность, но у них могут быть разные имена.

Если вы хотите сохранить изображение в файл, есть много графических библиотек, которые вы могли бы использовать, в зависимости от того, какой формат вы хотите сохранить.

  • Например, Python bindings to the Cairo library может сохранять изображение в формате PDF или SVG.
  • С другой стороны, библиотека Pillow поддерживает множество форматов растровых изображений.
  • много другие; matplotlib, agg, gd - всего лишь несколько примеров.
Смежные вопросы