Различия в формате данных пути SVG - PullRequest
0 голосов
/ 08 июля 2020

Я работаю над проектом, в котором мне нужно проанализировать данные пути svg.

Сейчас мы загружаем svg, ищем тег path и вытаскиваем его атрибут d .

Для некоторых иллюстраций мы получим данные пути, состоящие из координат, которые мы можем преобразовать в нужные нам типы данных. Например,

the kind of d attribute format we want

But other times the d value is in a more g-code-esq format.

Like in this case I drew a rectangle, converted it to a compound path:

rect illustration

And when I export it and look at the svg I get a d value like this:

enter image description here

Which we can't easily parse for the project.

My questions are:

  • How do I read this second format? It doesn't seem to fit what I'm reading on MDN so I suspect there's some other documentation I need to refer to: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d
  • Для пользователей иллюстраторов, есть ли способ изменить формат при экспорте?

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

1 Ответ

1 голос
/ 08 июля 2020

Ой! О, хорошо, я на 100% неправильно понял данные пути, которые я читал. Я не понимал, что разграничивающая информация была основана на письме. Мой мозг хотел использовать какой-то конкретный символ c в качестве разделителя, например запятую или вертикальную черту.

Итак, читаю (а в некоторых случаях перечитываю: |) документацию, когда вижу:

Я могу прочитать это как:

  • M753,315 Перейти к координатам x, y x: 753 y:315
  • H435.27 Начиная с текущего местоположения, проведите горизонтальную линию до абсолютная x координата 435.27
  • V165 Начиная с текущего местоположения, проведите вертикальную линию до абсолютной y координаты 165
  • H753 Начните в текущем местоположении нарисуйте горизонтальную линию до абсолютной x координаты 753
  • Z Нарисуйте прямую линию до начальной точки этого пути, чтобы закрыть путь. Это не обязательно означает горизонтальную или вертикальную линию, но совпадение того, что мы находимся в той же координате x, с которой мы начали, означает, что если мы проведем прямую линию, мы получим вертикальную линию, чтобы завершить прямоугольник

Кажется, правильно. Что-нибудь, что я пропустил или не понял?

Кроме того, спасибо за все ссылки. Ценю баллы: clap:: bows:

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