I am using fabric js to draw move resize rectangles. But one thing that I am getting stuck is to be able to draw circle or rectangle on mouse drag i.e. free drawing. I am following this tutorial example a line drawing example! But it did not explain about how to draw rectangle or circle like this example.
I am a beginner in using Fabric js , please help me out.
Code : `//Declaring the variables var isMouseDown=false; var OriginX=new Array(); var OriginY= new Array(); var refRect;
//Setting the mouse events
canvas1.on('mouse:down',function(event){
//Defining the procedure
isMouseDown=true;
OriginX=[];
OriginY=[];
//Getting yhe mouse Co-ordinates
var posX=event.e.clientX;
var posY=event.e.clientY;
OriginX.push(posX);
OriginY.push(posY);
//Creating the rectangle object
var rect=new fabric.Rect({
left:OriginX[0],
top:OriginY[0],
width:0,
height:0,
stroke:'red',
strokeWidth:3,
fill:''
});
canvas1.add(rect);
refRect=rect; //**Reference of rectangle object
});
canvas1.on('mouse:move', function(event){
// Defining the procedure
if(!isMouseDown)
{
return;
}
//Getting yhe mouse Co-ordinates
var posX=event.e.clientX;
var posY=event.e.clientY;
refRect.setWidth(Math.abs((posX-refRect.get('left'))));
refRect.setHeight(Math.abs((posY-refRect.get('top'))));
canvas1.renderAll();
});
canvas1.on('mouse:up',function(){
//alert("mouse up!");
isMouseDown=false;
});`
Thanks