私はいくつかの人工知能に取り組んでいます。これらは壁/境界の参照であるため、AIが特定の座標に遭遇しないようにしたいと考えています。
まず、AI が壁にぶつかるたびに、その位置 (x, y) を参照します。同じ壁に 3 回ぶつかると、線形チェック ポイントを使用して、これらの座標を通過する壁があると「想像」します。
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 までの線があります。しかし、無限 (または閉じる) まで、これらの線形座標を通る線を「想像」します。
これにはややこしい三角法が必要になると思いますか?