Я пытаюсь написать программу, которая переходит между двумя фигурами, созданными в Adobe Illustrator, с использованием javascript. Я смог добиться этого, экспортировав фигуры в формате SVG, а затем используя Raphael.js:
Однако интерполяции между двумя фигурами выглядят довольно плохо. Я узнал из исследований в этой теме предпочтительнее интерполировать с помощью алгоритмов, использующих кривые b-сплайна и добавляющих или вычитающих вершины где это уместно, что, как я предполагаю, стандарт SVG, используемый Рафаэлем, не делает. Мне интересно, можно ли это сделать с помощью d3.js, поскольку я заметил, что в документации SVG есть параметры интерполяции, а «основа», похоже, использует b-сплайн. Можно ли выполнить мой jsfiddle в d3 с правильной интерполяцией?
В качестве альтернативы, есть ли лучший способ приблизиться к этому? Возможно, я пошел по неправильному пути, используя SVG, так как результирующий путь все равно будет отображаться на холсте. Первоначально я выбрал SVG, потому что путь было бы легко сохранить в виде строки. Я заметил, что существует плагин Illustrator to canvas, который экспортирует команды холста. Можно ли их интерполировать? Должен ли я как-то захватывать форму из иллюстратора в виде массива точек? Любое понимание будет оценено!