我正在研究一些人工智能,我希望我的人工智能不会遇到给定的坐标,因为这些是墙/边界的参考。
首先,每次我的 AI 撞墙时,它都会引用那个位置 (x, y)。当它击中同一面墙三次时,它使用线性检查点来“想象”有一堵墙穿过这些坐标。
我现在想阻止我的 AI 再次进入那堵墙。
为了检测我的坐标是否成直线,我使用:
private boolean collinear(double x1, double y1, double x2, double y2, double x3, double y3) {
return (y1 - y2) * (x1 - x3) == (y1 - y3) * (x1 - x2);
}
如果给定的点彼此线性,则返回 true。
所以我的问题是:
如何确定我的机器人是否正在从其当前轨迹接近墙壁?
不是 Java 的“想象”,而是从 1 到 3 的一条线。但是要“想象”一条线一直穿过这些线性坐标,直到无穷大(或接近)。
我有一种感觉,这将需要一些令人困惑的三角函数?