атрибут parse d в элементе пути SVG - PullRequest
4 голосов
/ 23 февраля 2012

Я пытаюсь проанализировать атрибут d в элементе SVG Path, и до сих пор я обнаружил, что fabric.js может анализировать SVG, но до сих пор я не знаю, как.

Мне нужно разобрать путь, чтобы получить в нем фигуры (линии дуг) и нарисовать над ними квадраты, а главное вернуть атрибуты этих квадратов.

есть идеи, как это сделать с помощью fabric.js ?? или любая другая библиотека ?? или у кого-то другой подход?

следующее изображение имеет прямоугольник и линию с квадратами, которые я нарисовал на их границах, и я пытаюсь сделать то же самое для элемента path rectangle and line with boundaries

Ответы [ 4 ]

3 голосов
/ 28 февраля 2012

Я нашел это

var cmdRegEx = /[a-z][^a-z]*/ig;
var commands = d.match(cmdRegEx);

, который может получить каждую команду с ее параметрами, но вам нужно обрезать каждую команду из пробелов

2 голосов
/ 25 марта 2012

Отпечатан в той же проблеме. Вы можете использовать regep / -? \ D + / ig, который производит только числа, заштрихованные из букв, пробелов и запятые.

1 голос
/ 09 декабря 2016

Основываясь на ответе Zeacuss и предложении Марка К Коуэна, я использую:

var cmdRegEx = /([MLQTCSAZVH])([^MLQTCSAZVH]*)/gi
var commands = d.match(cmdRegEx);
0 голосов
/ 23 февраля 2017

Библиотека Python svgpathtools может быть полезна для ваших нужд.Это список его функций (из документации ):

Некоторые инструменты включены:

read, write, and display SVG files containing Path (and other) SVG elements
convert Bézier path segments to numpy.poly1d (polynomial) objects
convert polynomials (in standard form) to their Bézier form
compute tangent vectors and (right-hand rule) normal vectors
compute curvature
break discontinuous paths into their continuous subpaths.
efficiently compute intersections between paths and/or segments
find a bounding box for a path or segment
reverse segment/path orientation
crop and split paths and segments
smooth paths (i.e. smooth away kinks to make paths differentiable)
transition maps from path domain to segment domain and back (T2t and t2T)
compute area enclosed by a closed path
compute arc length
compute inverse arc length
convert RGB color tuples to hexadecimal color strings and back
...