Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: Legantmar от 03-08-2022, 09:21:23

Название: Подскажите алгоритм перпендикулярной линии к полилинии с дугами
Отправлено: Legantmar от 03-08-2022, 09:21:23
Коллеги, подскажите алгоритм действий
Есть полилиния составленная из прямых линий и дуг, необходимо построить перпендикулярные линии с равными промежутками расстояния между ними.
(Т.е. есть жд линия с радиусами и нужно показать пикеты через каждый 1 км)
(https://i.postimg.cc/PCG9mL1J/2022-08-03-09-00-22.png) (https://postimg.cc/PCG9mL1J)
если бы полилиния состояла бы только из прямых отрезков, то можно было бы вычислить точку на отрезке по расстоянию от начальной точки и построить линию повернутую на 90 градусов относительно нее, но как быть с дугами ?

буду рад любым предложениям и мыслям
Название: Re: Подскажите алгоритм перпендикулярной линии к полилинии с дугами
Отправлено: Владимир Шу от 06-08-2022, 09:23:24
нда... если бы вы писали на .нет, все было бы намного проще, а так, Вам придется рассчитывать все руками, получая кривизну дуги, ее длину и самому рассчитывать координаты точки, а дальше все проще, у дуги есть центр, соответственно вы должны стоить отрезки по вектору от центра к точке на дуге.
Название: Re: Подскажите алгоритм перпендикулярной линии к полилинии с дугами
Отправлено: Legantmar от 06-08-2022, 17:44:22
пишу на IronPython (аля С#, а следовательно и .Net)
пока пошел по пути предварительного преобразования сплайна в полилинию в Автокаде с помощью команды _pedit с требуемой детализацией (например, 70)
получаю много тысяч прямых отрезков, нахожу сумму отрезков кратных ~ 1 км, строю новую линию по координатам последнего в каждом цикле, поворачиваю на 90 градусов и масштабирую до приемлемых значений (заданной длины)
Название: Re: Подскажите алгоритм перпендикулярной линии к полилинии с дугами
Отправлено: Александр Ривилис от 06-08-2022, 19:33:50
Legantmar,
Curve.GetFirstDerivative даёт вектор касательной к кривой в точке на кривой. Соответственно добавив PI/2 получишь нормаль к кривой.
Название: Re: Подскажите алгоритм перпендикулярной линии к полилинии с дугами
Отправлено: Legantmar от 06-08-2022, 22:02:02
спасибо.
попробую