У меня есть верхняя и нижняя линии.Каждая строка состоит из начальной и конечной точек новая строка ( x_start, y_start, x_end, y_end )
Тогда у меня есть прямоугольник с позициями x и y,И любое значение х, я хочу, чтобы получить вертикальное расстояние между верхней и нижней линией.
Моя стратегия заключалась в том, чтобы найти координаты пересечения каждой линии (сверху и снизу) с воображаемой вертикальной линией (x, 0, x, 10)
Я использовал этот код, но он не поддерживает бесконечный наклон.
function lineIntersect(a, b) {
a.m = (a[0].y - a[1].y) / (a[0].x - a[1].x); // slope of line 1
b.m = (b[0].y - b[1].y) / (b[0].x - b[1].x); // slope of line 2
return a.m - b.m < Number.EPSILON ? undefined
: {
x: (a.m * a[0].x - b.m * b[0].x + b[0].y - a[0].y) / (a.m - b.m),
y: (a.m * b.m * (b[0].x - a[0].x) + b.m * a[0].y - a.m * b[0].y) / (b.m - a.m)
};
}
Как этого достичь?