Prolfiic
@Prolfiic
Интересуюсь WEB технологиями.

Как найти точку на расстоянии d от прямой?

Здравствуйте, требуется решить задачу. А именно, есть ломаная (задана массивом точек) и нужно найти ломаную, огибающую исходную, наверное более понятно будет на рисунке (синяя - та, которую нужно построить): 5c09e7a67b79d946126035.jpeg
Т.е, если построить ломаную по новым точкам, она должна повторять и огибать начальную. По каким формулам можно это посчитать, если задан двумерный массив с точками?
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 2
MDiMaI666
@MDiMaI666
Талантливый программист
Найти центр. Провести перпендикуляры. Скалярная система координат.
Ответ написан
@Karpion
У Вас ошибка в постановке задачи. Огибающая - это не ломанная (набор отрезков), а более сложная линия.
Когда огибающая идёт вдоль прямого участка - она будет тоже прямая. А вот при огибании вершины - будет окружность.

Рассмотрим первый отрезок. Пусть он задан точками начала {x0,y0} и конца {x1,y1}.
Посчитаем вектор этого отрезка v={(x1-x0),(y1-y0)}.
Посчитаем нормаль к нему n={(y1-y0),(x0-x1)} - меняем координаты местами, у одной из координат меняем знак.
Нормализуем нормаль, т.е. вычисляем длину нормали (Пифагор подсказывает) и потом делим каждую компоненту на длину. Т.е. нормаль оказывается единичной длины.
Умножаем нормаль (каждую компоненту) на длину жёлтого отрезка.

Теперь прибавим эту нормаль к первой точке {x0,y0} и потом ко второй точке {x1,y1}. Получим концы первого синего отрезка.
Одна беда - синие отрезки, полученные таким образом, будут равны исходным, и поэтому не состыковываются.
Для того, чтобы их состыковать - надо искать пересечения прямых. По идее - ничего сложного нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы