Я использую библиотеку Raphael Javascript для построения кубических кривых Безье. Мне нужно получить прямой сегмент в самом конце моей кривой, который имеет постоянную длину, независимо от длины или структуры большей кривой. Однако, когда я помещаю одну точку в конец кривой и пытаюсь расположить вторую на 25 единиц назад от первой, фактическое расстояние между точками меняется по мере изменения кривой. Есть ли способ получить прямой сегмент в конце моей кривой, который всегда имеет одинаковую длину в пикселях? Я предполагаю, что это связано с тем, что векторные единицы преобразуются в реальные пиксели на экране, но я нашел мало информации о том, как исправить такие несоответствия. Спасибо за любую помощь, которую вы можете предоставить!
Как получить подсегменты векторных кривых одинаковой длины?
comment
Пожалуйста, уточните, что вы подразумеваете под «постоянной длиной». Вы имеете в виду взять круг радиусом 25 с центром в конце пути и найти точку, где этот круг пересекает кривую, или вы имеете в виду найти точку вдоль извилистой дороги, определяемой кривой, которая находится на расстоянии 25 пикселей от конца?
- person Phrogz   schedule 06.04.2011
Ответы (1)
Если вы ищете длину вдоль пути, вы хотите использовать getPointAtLength()
< /а>:
var pt = myPath.getPointAtLength( myPath.getTotalLength() - 25 );
Это даст вам SVGPoint
в локальном пространстве родителя дорожка.
Вы можете увидеть пример использования этого метода (и других) для регулярной выборки вдоль пути здесь:
http://phrogz.net/SVG/convert_path_to_polygon.xhtml
person
Phrogz
schedule
05.04.2011