У меня есть сегмент линии, определенный двумя точками: P1 и P2, а также точкой NP. Я хочу создать параллельную линию, проходящую через NP. Я работаю в JavaScript и ищу функцию для расчета координат точек A и B на параллельной линии. Может ли кто-нибудь предоставить функцию JavaScript для этой задачи или предложить улучшения моего существующего кода?

function createParallelLine(P1, P2, NP) { // Вычисляем вектор направления исходного отрезка const DirectionVector = { х: P2.x - P1.x, у: П2.у - П1.у }; // Нормализуем вектор направления const length = Math.sqrt(directionVector.x ** 2 + DirectionVector.y ** 2); constnormalizedDirection = { х: направлениеВектор.х/длина, y:directionVector.y/длина }; // Вычисление перпендикулярного вектора const перпендикулярный вектор = { х: -normalizedDirection.y, y: нормализованноеDirection.x }; // Вычисляем новые точки A и B для параллельной линии константа А = { х: NP.x + перпендикулярный вектор.x, y: NP.y + перпендикулярный вектор.y }; константа Б = { х: NP.x — перпендикулярный вектор.x, y: NP.y - перпендикулярный вектор.y }; вернуть {А, Б}; } // Пример использования: const P1 = {x: 1, y: 1}; const P2 = {x: 4, y: 4}; const NP = {х: 2, у: 2}; const {A, B} = createParallelLine(P1, P2, NP); console.log("Точка А:", A); console.log("Точка Б:", B);
Мобильная версия