Разделить полотно на регионы, а затем привлечь соседние предметы в ближайший регион? - PullRequest
0 голосов
/ 04 июня 2019

Я создаю графический интерфейс с использованием python tkinter для визуализации дорожных сценариев (основной автомобиль и автомобиль рядом).Я рисую на холсте линии, чтобы дать вид на дорогу (как на картинке ниже).Пользователь может вставить прямоугольник (транспортное средство), а затем свободно переместить его на холст.

То, что я хочу, это: после того, как пользователь переместит прямоугольник туда, где он когда-либо захочет, координата y прямоугольника переместится наближайший переулок, чтобы иметь в конце симпатичный png.

Я думал об этом:

  1. Разделить холст на регионы (каждый регион представляет собой переулок)
  2. Создайте функцию, которая будет знать, когда прямоугольник закончил движение, затем измените его координату y на ближайшую область (полосу).

Хотя вы не знаете, как применить это в коде.Любые полезные функции Canvas или другой подход приветствуются.

1 Ответ

0 голосов
/ 07 июня 2019

Подход, который я упомянул в вопросе, сработал для меня.

  1. Был создан список, идентифицирующий стороны оси Y каждого региона.
  2. После создания необходимых элементов онивсе имеют общий тег.
  3. Выберите, какую часть предметов вы хотите считать исходной точкой (которая будет использоваться позже в качестве текущего местоположения предмета).Canvas.bboc (CURRENT) может быть достаточно для этого.
  4. Определить, когда элемент входит в область, сравнивая, находится ли текущее местоположение элемента в границах области.
  5. ИспользованиеМетоды Canvas.coords () или Cancas.move () для перемещения элементов в середине введенного ими региона.
...