Для заданных точек (x1, y1)
и (x2, y2)
вы можете определить, является ли третья точка (x3, y3)
коллинеарной, следующим образом.
Сначала вычислите наклон m1 = (y2 - y1) / (x2 - x1)
.
Затем вычислите наклон m2 = (y3 - y2) / (x3 - x2)
.
Линии коллинеарны тогда и только тогда, когда m1 = m2
.Коллинеарность означает, что они лежат на одной линии.
Это не работает только для вертикальных линий;эти случаи можно обрабатывать отдельно следующим образом: x1 = x2 = x3
, тогда точки коллинеарны;если x1 = x2
или x2 = x3
, но не x1 = x2 = x3
, то третья точка не коллинеарна первым двум.
Для заданных линий (m1, h1)
и (m2, h2)
вы можете определить, является литочка (x3, y3)
находится "между" этими линиями следующим образом.
Вычисляет y1 = h1 + m1 * x3
и y2 = h2 + m2 * x3
.
Тогда точка находится между линиями тогда и только тогда, когда y1 <= y3 <= y2
или y2 <= y3 <= y1
.
2. Если обе линии являются вертикальными линиями x = x1
и x = x2
, то точка находится между линиями тогда и только тогда, когда x1 <= x3 <= x2
или x2 <= x3 <= x1
.
Если ровно одна из линий является вертикальной (предположим, что этопервый для простоты записи), затем вычисляем x2 = (y3 - h2) / m2
;тогда точка находится между линиями в том и только в том случае, если x1 <= x3 <= x2
или x2 <= x3 <= x1
.
(Если одна из ваших линий вертикальная, а другая горизонтальная, я думаю, единственной точкой между ними является ихточка пересечения).