SVG: упростить путь для удаления кривых? - PullRequest
11 голосов
/ 17 июня 2011

У меня есть файл SVG, который содержит сложные пути с кривыми Безье.Мне нужно преобразовать эти данные пути, чтобы использовать их для html-области карты, так что на самом деле мне нужны только координаты (но для больших кривых было бы очень неплохо иметь некоторые координаты «между» двумя конечными точками.

Я пытался использовать функцию упрощенного пути Inkscape, но эти пути все еще содержат кривые ...

Существует ли какой-либо инструмент или формула для преобразования этих кривых в простые координаты?

Может быть, другойФормат вывода Inkscape, который не использует кривые в своих координатах?

Ответы [ 3 ]

15 голосов
/ 17 июня 2011

В Inkscape:

  • Выберите Редактировать путь по узлам инструмент (F2).
  • Нажмите на свой путь, чтобы выбрать его
  • Ctrl-A , чтобы выбрать все узлы в этом пути
  • Нажмите Сделать выделенные линии сегментов (на панели инструментов вверху - значок представляет собой прямую диагональную линиюмежду двумя квадратными узлами).
7 голосов
/ 26 января 2016

Для автоматизации попробуйте включенное расширение Flatten Bezier в Inkscape.Описание здесь .

0 голосов
/ 26 октября 2017

Существует более технический способ упростить SVG-путь - https://github.com/mattdesl/simplify-path

var path = [ [250, 150], [250, 150], [25, 25], [24, 25], [10, 10] ]
var tolerance = 10
path = simplify(path, tolerance)
//result:
//[ [ 250, 150 ], [ 25, 25 ], [ 10, 10 ] ]
...