Java - обнаружение прямых линий с заданными координатами

ДОБАВЛЕННАЯ ИНФОРМАЦИЯ:

Я использую внутреннюю часть квадрата как арену. При запуске квадрат появляется в случайном положении, и вращение, и яне может получить доступ к любому из атрибутов квадратов.

Затем у меня есть движущийся объект внутри квадрата, для которого я строю ИИ, и я хочу, чтобы объект «узнал», где находятся стены арены. Каждый раз, когда объект врезается в стену, я возвращаюсь прикосновением, поэтому я знаю, ударил он или нет. Я использую это, чтобы отобразить глобальное положение места, где объект врезался в стену, и сохранить его ... После 3 ударов по одной стене я хочу математически «нарисовать прямую линию» вниз по тем точкам, которые будут представлять стены арены. - с этим я могу сказать своему объекту не приближаться к этим координатам.

Причина 3 точки? Хорошо, если объект ударил по одной стороне стены, а затем поразил другую сторону стены, у меня будет линия, проведенная от одной стороны к другой, дающая ложные данные о том, где находится стена.

Если Java видит три (или более) встроенных точек, она знает, что объект попал в ту же стену (либо дальше вверх, либо около того).

ПРОДОЛЖЕНИЕ:

Я пытаюсь наметить линии с данными координат. В основном у меня есть массив, который содержит координаты X и Y, и я хочу иметь возможность математически определить, составляют ли они прямую линию (дать или взять несколько пикселей). (Координата - это граница квадрата)

Например, массив может быть таким:

[x0] [y0] - 1,1

[x1] [y1] - 2,2

[x2] [y2] - 5,5

Который представит диагональную линию на стороне квадрата, вот так:

Но иногда я могу получить одну координату одной стороны квадрата, а затем другую сторону, все смешанные (и не обязательно под углом 90 градусов!). Поэтому я хочу иметь возможность проходить через массив и определять, какие координаты образуют линию (или границу стороны квадрата), например так:

Итак, сейчас у меня есть 2D-массив:

private double wallLocations[][] = new double[10][10];

и цикл while, который не выполняет работу. Я даже не знаю, с чего начать:

for(int r = 0; r < wallIndex; r++){
            for(int c = 0; c < wallIndex; c++){

                int index = 0;
                if(wallLocations[r][index] == wallLocations[r][c] && wallLocations[r][index + 1] == wallLocations[r][c] &&
                        wallLocations[r][index + 2] == wallLocations[r][c]){

                    System.out.println("***** Wall Here! *****");
                    index++;
                }

            }
        }

---- ОБНОВИТЬ ----

Вот лучший пример того, что я ищу. Красные точки представляют входящие координаты, линия обнаруживается, когда 3 или более точек выстраиваются в линию (если бы это были 2 точки, то это обнаружило бы любую и всегда точку) ... Вы замечаете, что это начинает выглядеть как граница площади?

Ответы на вопрос(2)

Ваш ответ на вопрос