Есть ли обратная функция SVGGeometryElement.getPointAtLength? - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть координаты точки где-то вдоль SVGPath. Мне нужно иметь возможность найти расстояние вдоль пути до этой точки, например, вызов getPointAtLength (distance) вернет мою точку.

Это необходимо для запуска в Javascript в браузере.

Кто-нибудь знает, как это сделать эффективно, или существует существующая библиотека, которая делает это?

Я думаю, что мне удалось разработать алгоритм, включающий

  • Разделение пути на сегменты
  • Использование ограничительной рамки каждого сегмента для определения, на каком сегменте находится точка
  • Разделение сегмента на две половины для создания двух путей
  • Проверка ограничивающих рамок двух путей, чтобы определить, на каком пути лежит точка.
  • Повторяйте последние два шага, пока я не окажусь достаточно близко к своей точке.

Я не думал о лучшем способе сделать это, чем это, но я надеюсь, что кто-то уже решил это, чтобы избежать повторного изобретения колеса.

Если это поможет, моя точка рассчитывается с использованием svg-пересечений для вычисления пересечения двух путей. По сути, мое «я» должно быть в состоянии оживить от моей точки до конца пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...