Arris
@Arris
Сапиенсы учатся, играя.

Inkscape: сохранение данных в странном виде. Как такое парсить и почему инскейп так делает?

Это вопрос для гуру инкскейпа и инкскейп-хакеров.

При помощи straight lines рисуем на листе 2 полигона, один внутри другого. Выделяем оба, потом говорим Path->Difference. Получаем полигон "с дыркой".

Сохраняем файл, смотрим его структуру (незначимые теги и атрибуты опущены):

<path d="M 145 493.07617 L 145 630.93359 L 275.71484 630.93359 L 275.71484 493.07617 L 151.42773 493.07617 L 145 493.07617 z M 162.85742 520.21875 L 256.42773 520.21875 L 256.42773 606.64844 L 162.85742 606.64844 L 162.85742 520.21875 z ">

Хрень какая-то... не соответствующая стандарту.

Сдвигаем наш странный полигон на один пиксель и тут же двигаем обратно. Снова сохраняем и смотрим код:

<path d="m 145,493.07617 0,137.85742 130.71484,0 0,-137.85742 -124.28711,0 -6.42773,0 z m 17.85742,27.14258 93.57031,0 0,86.42969 -93.57031,0 0,-86.42969 z">

А вот теперь все выглядит так, как должно выглядеть. Это уже можно парсить.

Но почему так происходит? Как заставить инкскейп всегда генерировать корректный код путей?

P.S. Формат сохранения - Inkscape SVG или plain SVG ни на что не влияет.
  • Вопрос задан
  • 284 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы