龟模块 - 检测与多边形的碰撞

时间:2013-12-03 05:06:39

标签: python turtle-graphics

我正在做一个小乌龟的实验,基本上是一个你可以控制乌龟的小游戏......我已经进行了轨迹计算,所以我可以很好地控制它!

但是,我想定义障碍,主要是由一组点定义的多边形。 如果乌龟伤害它们(弹性碰撞),那些会引发碰撞。

我的问题是...... 如何检测我是否在多边形的边界?假设我直接进入三角形的斜边中间,我怎么知道这实际上是一条我无法通过的线,在恰当的时刻,为了触发碰撞代码?

谢谢!

1 个答案:

答案 0 :(得分:0)

您的多边形由线段定义。乌龟移动也是一个线段,因此您只需要检查乌龟线段和多边形线段列表之间的交叉点。

你可以很快地对一百或一千个线段进行此操作。除此之外,您还需要寻找更智能的算法。例如。 Bentley-Ottmann algorithm