使用fabricjs

时间:2016-11-14 18:52:30

标签: javascript html5-canvas fabricjs

我正在开发具有白板的应用程序。白板应该像idroo.com一样工作。一个用户正在绘制另一个用户应该能够在他的浏览器上实时看到的内容。我使用fabricjs作为帆布包装,它有我需要的任务。但我不能在画布上模仿自由绘画。我将鼠标位置和画笔选项发送到远程客户端,并尝试通过触发鼠标移动事件来渲染它们。但它不起作用。如果有些身体出现类似问题,请你帮忙吗?

canvasContainer.on('mousemove', function (e) {      
    var left = canvasContainer.offset().left;
    var top = canvasContainer.offset().top;
    var x = e.pageX - left;
    var y = e.pageY - top;         
    //Send data to remote browser by socket.io or signalr
    //I need to draw on remote browser by these x and y coordinates.
    updateCursor(_connections, x, y);
});

1 个答案:

答案 0 :(得分:3)

您可以这样做:

var brush = new fabric.PencilBrush(canvas);
var points = [[10,10], [20,20], [25,70],[100,300]];

brush.onMouseDown({x:points[0][0], y:points[0][1]});
for(var i=1;i<points.length;i++) {
  brush.onMouseMove({x:points[i][0], y:points[i][1]});
}

请在此处查看plunker:https://plnkr.co/edit/V1c1xkB29tgB2ha99CRQ?p=preview

您可以简化用于计算x和坐标的代码,并按照以下方式执行:

var point = canvas.getPointer(e);