1
일정한 간격으로 직사각형에 세로선을 그려야하며 줄 수는 사용자에 따라 다릅니다.Fabric.js를 사용하여 직사각형으로 일정한 간격으로 세로선을 그립니다.
숫자가 3이면 직사각형에 동일한 간격으로 수직선이 있어야합니다. Fabric.js에서 어떻게 이것을 할 수 있습니까?
마우스 이벤트를 사용하여 사각형을 그릴 수 있습니다.
코드와 바이올린은 다음과 같습니다 :
//Start when the document is loaded
$(document).ready(function(){
var canDraw = true;
//Getting the canvas
var canvas1= new fabric.Canvas('canvas');
//Setting the canvas properties
canvas1.setHeight(400);
canvas1.setWidth(1300);
canvas1.renderAll();
//End of canvas1
//Binding the functions to button_2
$('#2').click(function(){
console.log("Button 2 cilcked");
canvas1.isDrawingMode=false;
//Declaring the variables
var isMouseDown=false;
var OriginX=new Array();
var OriginY= new Array();
var refRect;
if(canDraw) {
//Setting the mouse events
canvas1.on('mouse:down',function(event){
//Defining the procedure
isMouseDown=true;
OriginX=[];
OriginY=[];
//Getting the 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',
fill:'white'
});
canvas1.add(rect);
rect.lockRotation=true;
refRect=rect; //**Reference of rectangle object
});
}
canvas1.on('mouse:move', function(event){
// Defining the procedure
if(canDraw) {
//Getting the 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'))));
refRect.setCoords();
canvas1.renderAll();
}
});
canvas1.on('mouse:up',function(){
canDraw = false;
});
});
});
바이올린 :
http://jsfiddle.net/URWru/116/