Я кодирую задачу коммивояжера (TSP) с помощью генетического алгоритма в Python и хочу визуализировать процесс мышления с помощью pygame. Может быть, для этого есть модули лучше, чем pygame, но у меня есть другие функциональные возможности, которые решаются очень просто в pygame (выбор количества городов, численность населения, уровень мутаций и т. Д.), Поэтому я хочу использовать его и для рисования, не добавляя многодополнительный код или модули.
У меня есть функция рисования, которая в основном рисует черный экран, белые точки в качестве городов, текст, который показывает текущую наилучшую длину пути, текущее поколение и все основные параметры на выбор. Проблема в том, что во время вычислений я хочу:
- Рисовать линии между точками, которые показывают текущий лучший путь
- Обновлять текст, который показывает лучшую длину пути
- Обновить текст, показывающий текущее поколение
Однако при рисовании новых линий предыдущие линии все еще остаются, и после некоторых прорастаний становится паутиной линий. Сейчас я все время делаю win.fill (0) и перерисовываю точки, текст и все, что статично, чтобы избавиться от предыдущих строк. Однако я хочу сделать его более эффективным:
init_draw()
for generation in range(max_generations):
# Calculation formulas here....
draw_path()
Где путь прорисовки обновляет только то, что действительно необходимо обновить, и удаляет предыдущие строки и текст, который был нарисован в этой функции в предыдущемитерации, чтобы не создавать кластер из строк и текста поверх друг друга.
Заранее спасибо!