хранение тех точек, которые не в треугольниках - PullRequest
0 голосов
/ 18 ноября 2010

Я написал код, который сначала получает несколько точек (имеет x, y), а затем я проверю все возможные треугольники с этими точками, и я проверю, находится ли конкретная точка в треугольнике или нет (с определением), но яесть проблема с этой частью кода, которая находит внешние точки и внутренние точки. Это не работает хорошо. Пожалуйста, помогите мне спасибо.

    public void externalPoints(List<Point> pointList) {
// this method will check that a point is in a (n-1)(n-2)(n-3)/6 triangles or not
    int n = pointList.size();
    if (n <= 2) {
        System.out.println("null");
    } else if (n == 3) {
        drawingLine();
    } else {

        for (int i = 0; i < n; i++) {
            for (int j = 1; j < n; j++) {
                for (int k = 2; k < n; k++) {
                    for (int m = 3; m < n; m++) {
                        if (isPointInTriangle(pointList.get(i), pointList.get(j), pointList.get(k), pointList.get(m)) == true) {
                            System.out.println("is in the triangle");
                            break;
                        } else {
                            System.out.println("is not in a triangle");
                            newList.add(pointList.get(i));



                        }
                    }
                }

            }

        }


    }

}

Также isInTriangle метод похож на этот сайт: текст ссылки

1 Ответ

1 голос
/ 18 ноября 2010

Можете ли вы объяснить, почему это не работает?

Кажется, что ваш метод итерации по точкам немного хитрый.Например, если n == 5, ваша программа оценит isPointInTriangle для i = j = k = m = 4, что означает, что она пытается выяснить, находится ли точка 4 внутри треугольника, образованного из вершин 4,4,4.Если вы используете первый метод в своей ссылке, isPointInTriangle (4,4,4,4) вернет true, даже если форма, которую вы задали, на самом деле не является треугольником ... вы, вероятно, хотите утверждать, что ваши вершиныразные точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...