使用 fabric.js 在 canvas 中绘制线条动画
Animating the drawing of a line in the canvas with fabric.js
我可以使用以下方法在 canvas 中画一条线:
var myLine = new fabric.Polyline([{x:200,y:200},{x:200,y:200}])
var canvas = new fabric.Canvas('c');
canvas.add(myLine);
但是,我想为绘图设置动画。我试过了:
myLine.animate("points","[{x:200,y:200},{x:10,y:10}]",{onChange: canvas.renderAll.bind(canvas)})
但它不起作用,我看不出有什么方法可以使用 fabric.js 为线条的绘制设置动画 - 我知道我可以直接使用 canvas 方法,但我很好奇 fabric.js 提供了更简洁的内容。
我做了一个jsFiddle based on http://fabricjs.com/polygon-animation/,然后我把它改成一个fabricjs Polyline
。您可以从此处设置开始值和结束值:
var startPoints = [
{x: 1, y: 1},
{x: 2, y: 2}
];
var endPoints = [
{x: 1, y: 1},
{x: 200, y: 200}
];
到目前为止,没有适合我的解决方案,所以这里是 js-fiddle 我想出的解决方案。它基于 Nistor Christian 的上一个解决方案:
我做了一个简单的函数,它接受 Canvas(以防你想在多个 canvas 上使用它)、颜色、原始线坐标(StartXY、EndXY)和新的直线坐标 (NewStartX,NewStartY)。
function animateLine(canvasInstance,color,
startX,startY,endX,endY,
newStartX, newStartY,newEndX,newEndY)
我可以使用以下方法在 canvas 中画一条线:
var myLine = new fabric.Polyline([{x:200,y:200},{x:200,y:200}])
var canvas = new fabric.Canvas('c');
canvas.add(myLine);
但是,我想为绘图设置动画。我试过了:
myLine.animate("points","[{x:200,y:200},{x:10,y:10}]",{onChange: canvas.renderAll.bind(canvas)})
但它不起作用,我看不出有什么方法可以使用 fabric.js 为线条的绘制设置动画 - 我知道我可以直接使用 canvas 方法,但我很好奇 fabric.js 提供了更简洁的内容。
我做了一个jsFiddle based on http://fabricjs.com/polygon-animation/,然后我把它改成一个fabricjs Polyline
。您可以从此处设置开始值和结束值:
var startPoints = [
{x: 1, y: 1},
{x: 2, y: 2}
];
var endPoints = [
{x: 1, y: 1},
{x: 200, y: 200}
];
到目前为止,没有适合我的解决方案,所以这里是 js-fiddle 我想出的解决方案。它基于 Nistor Christian 的上一个解决方案:
我做了一个简单的函数,它接受 Canvas(以防你想在多个 canvas 上使用它)、颜色、原始线坐标(StartXY、EndXY)和新的直线坐标 (NewStartX,NewStartY)。
function animateLine(canvasInstance,color,
startX,startY,endX,endY,
newStartX, newStartY,newEndX,newEndY)