Как уменьшить количество координат произвольного пути SVG, не теряя много или никакой точности?

Я слежу в Интернете за инструментами, программами, утилитами, вспомогательными библиотеками и примитивами кода, которые в последнее время помогают оптимизировать SVG для простоты, пространства и элегантности, чтобы ссылаться на них изКилобайт SVG Challenge'sраздел инструментов, но еще предстоит найти хорошие примитивы, сосредоточенные на том, как уменьшить количество координат пути, не теряя много - или в идеале любой - точность.

Возьми эту маркерно-дополненную версиюЛоготип кока кола, например (~ 7кб, практически все данные пути) - который очень ясно показывает многообещающее для сокращения его количестванулей, учитывая некоторый инструментарий для математики, чтобы придумать путь, используя меньшее количество узлов, в то же время создавая по существу ту же кривую.

Для гораздо более простой проблемы многоугольников и полилиний (читайте "все пути "), вы можете использовать ДугласPeucker или Visvalingam ’алгоритм (см.Майк Бостокотличная реализация d3 последнего) просто удалить координаты, наименее влияющие на путьдо тех пор, пока выВы будете довольны точной посадкой по размеру, соответствующей вашим потребностям.

Я ищу эквивалент, который замечает, что более крупные сегменты кривой (или даже дуги) могли бы заменить множество этих избыточных координатных остановок в середине кривой без большого количества ручной настройки. Я думаю, что некоторые пакеты векторной графики (Adobe Illustrator, может быть, даже Inkscape?) Могут предлагать такие функции, как эти (советы о том, как получить к ним доступ, приветствуются!) - хотя я хотел бы найти инструменты с поддержкой скриптов, которые мы можем порекомендовать, и предложить HOWTO о том, как их использовать из командная строка или даже веб-приложения, которые выжимают лишний материал для заполнения пути для людей.

Для справки,Килобайт SVG Challenge это забавный трюк в сфере образования и адвокации, который я недавно организовал. Все обсуждения, не связанные с вопросами, лучше всего проводить там, и / или в своем репозитории github, указанном выше. Оставайся классным! :)

Ответы на вопрос(1)

Ваш ответ на вопрос