Я пытаюсь закодировать спрей, как инструмент в paperjs, потому что рисунок должен быть SVG экспортируемым.спрей как инструмент производительности в paperjs
Код работает, но производительность ухудшается очень быстро. Есть ли способ имитировать экспортируемый спрей svg как инструмент с улучшенными характеристиками в paperjs или другой библиотеке?
<script type="text/paperscript" canvas="canvas">
var path;
var gradient = {
stops: [
['rgba(0,0,0,1)', 0],
['rgba(0,0,0,0.5)', 0.5],
['rgba(0,0,0,0)', 1]
],
radial: true
};
tool.minDistance = 5;
tool.maxDistance = 5;
function onMouseDown(event) {
}
function onMouseDrag(event) {
path = new Path.Circle({
center: event.point,
radius: 10
});
path.fillColor = {
gradient: gradient,
origin: path.position,
destination: path.bounds.rightCenter
};
}
function onMouseUp(event) {
}
document.getElementById('button').addEventListener('click', function() {
var svg = project.exportSVG({ asString: true });
console.log('data:image/svg+xml;base64,' + btoa(svg));
});
</script>
update1: fixed gradient var scope, из-за предложения, но проблема сохраняется.
обновление2: правильное использование инструмента.
лучше всего использовать один градиент, созданный вне цикла (так как градиент не изменяется) и сделать все пути относятся к тому, что единый градиент. –