Как получить подсегменты векторных кривых с одинаковой длиной? - PullRequest
1 голос
/ 05 апреля 2011

Я использую библиотеку Raphael Javascript для построения кубических кривых Безье.Мне нужно получить прямой отрезок в самом конце моей кривой, который будет иметь одинаковую длину, независимо от длины или структуры большей кривой.Однако, когда я помещаю одну точку в конец кривой и пытаюсь расположить вторые 25 единиц назад от первой, фактическое расстояние между точками меняется, когда я изменяю кривую.Есть ли способ получить прямой сегмент в конце моей кривой, который всегда имеет одинаковую длину в пикселях?Я предполагаю, что это связано с тем, что векторные единицы были переведены в фактические пиксели на экране, но я нашел немного в способах устранения таких несоответствий.Спасибо за любую помощь, вы можете предоставить!

1 Ответ

0 голосов
/ 06 апреля 2011

Если вы ищете длину вдоль пути, вы хотите использовать getPointAtLength():

var pt = myPath.getPointAtLength( myPath.getTotalLength() - 25 );

Это даст вам SVGPoint в локальном пространстве родителя пути.

Вы можете увидеть пример использования этого метода (и более) для регулярной выборки по пути здесь:
http://phrogz.net/SVG/convert_path_to_polygon.xhtml

...