Проверить, находится ли точка на 3-й линии? - PullRequest
5 голосов
/ 18 февраля 2011

Я знаю, как проверить, находится ли точка на 2-й линии или нет, но я бы хотел сделать это в 3D. Есть идеи?

        // slope from point 1 to point 3
        var p13:Number = (Math.atan2 (end.x - start.x, end.y - start.y)) * toDegrees;

        // slope from point 1 to point 2 -- matches?
        var p12:Number = (Math.atan2 (point.x - start.x, point.y - start.y)) * toDegrees;

        return Math.round(p12) == Math.round(p13);

Ответы [ 3 ]

6 голосов
/ 18 февраля 2011

Нормализация векторов. Проверьте соответствие нормалей.

Найдите наибольшее значение, разделите все остальные значения на это значение, чтобы получить вектор нормали.

Любая точка на линии должна иметь одинаковый вектор нормали.

3 голосов
/ 18 февраля 2011

Точка никогда не может быть «на» линии в реальных координатах.вам нужно рассчитать расстояние до ближайшей точки к линии и решить, достаточно ли это для вас.

0 голосов
/ 18 февраля 2011

Уравнение линии:

v (t) = v0 + t * dir

Где v0 - некоторая точка на линии, а dir - это ее направление.Просто проверьте, соответствует ли ваша точка этому линейному уравнению с достаточной точностью

...