Проверьте, пересекает ли отрезок линии перпендикулярную линию от конкретной точки? - PullRequest
1 голос
/ 18 августа 2010

Как показано на этом изображении:

alt text

У меня есть набор отрезков.Я хочу проверить, какие отрезки линии пересекаются с перпендикулярной линией, проведенной из данной точки (x0, y0).

(Например: AB проходит проверку, а BC - нет.)

единственная информация, которую я получил, - это две точки отрезка линии (x1, y1), (x2, y2) и целевая точка (x0, y0).

Можно ли вывести простоеФормула с использованием этих трех точек?

Заранее спасибо.

Уманга

Ответы [ 2 ]

4 голосов
/ 18 августа 2010

В качестве фона, если вам нужно, вы можете прочитать о точечном произведении , его геометрической интерпретации и, в частности, скалярной проекции .

Определите векторы v0 = (x0, y0) - (x1, y1) и v2 = (x2, y2) - (x1, y1).

Тогда точка пересечения будет

(x1, y1) + (( v0 v2 ) / ( v2 v2 )) v2

Точка пересечения будет на отрезке, если скалярное значение ( v0 v2 ) /( v2 v2 ) от 0 до 1.

1 голос
/ 18 августа 2010

Для линии AB и точки X оба угла, ABX и BAX, должны быть острыми (или правыми).

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