У меня есть координаты точки где-то вдоль SVGPath. Мне нужно иметь возможность найти расстояние вдоль пути до этой точки, например, вызов getPointAtLength (distance) вернет мою точку.
Это необходимо для запуска в Javascript в браузере.
Кто-нибудь знает, как это сделать эффективно, или существует существующая библиотека, которая делает это?
Я думаю, что мне удалось разработать алгоритм, включающий
- Разделение пути на сегменты
- Использование ограничительной рамки каждого сегмента для определения, на каком сегменте находится точка
- Разделение сегмента на две половины для создания двух путей
- Проверка ограничивающих рамок двух путей, чтобы определить, на каком пути лежит точка.
- Повторяйте последние два шага, пока я не окажусь достаточно близко к своей точке.
Я не думал о лучшем способе сделать это, чем это, но я надеюсь, что кто-то уже решил это, чтобы избежать повторного изобретения колеса.
Если это поможет, моя точка рассчитывается с использованием svg-пересечений для вычисления пересечения двух путей. По сути, мое «я» должно быть в состоянии оживить от моей точки до конца пути.