将画布划分到区域,然后将附近的项目吸引到最近的区域



我正在使用python tkinter创建GUI来可视化道路场景(主要车辆和车辆附近(。我在画布上画线以提供道路顶视图(如下图所示(。用户可以插入一个矩形(车辆(,然后在画布上自由移动它。

我想要的是:在用户将矩形移动到他想要的位置后,矩形的 y 坐标将重新定位到最近的车道,以便在末尾有一个漂亮的 png。

我的想法是:

  1. 将画布划分为区域(每个区域代表一条车道(
  2. 创建一个知道矩形何时完成移动的函数,然后将其的 y 坐标修改为最近的区域(通道(。

不知道如何在代码中应用它。任何有用的画布函数或其他方法都非常感谢。

我在问题中提到的方法对我有用。

  1. 创建了一个标识每个区域的 y 轴边的列表。
  2. 创建所需项目后,它们都共享一个通用标签。
  3. 选择要将项目的
  4. 哪一部分视为原始点(稍后将用作项目的当前位置(。Canvas.bboc(CURRENT(足以做到这一点。
  5. 通过比较项目的当前位置是否在区域边界内,检测项目何时进入区域。
  6. 使用 Canvas.coords(( 或 Cancas.move(( 方法将项目移动到它们输入的 regoin 中间。

最新更新