mxgraph 画布

画布自动扩大/缩小计算:

//得到所拖拽图形相对于画布的位置(-880,-100)
var x = Math.ceil(bounds.x / this.view.scale - this.view.translate.x);
var y = Math.ceil(bounds.y / this.view.scale - this.view.translate.y);
//根据缩放比例拿到长宽
var w = Math.floor(bounds.width / this.view.scale);
var h = Math.floor(bounds.height / this.view.scale);
		
//计算左上角相对于原始画布大小的比例
var x0 = Math.floor(x / size.width);
var y0 = Math.floor(y / size.height);
//计算右下角相对于原始画布大小的比例
var w0 = Math.ceil((x + w) / size.width) - x0;
var h0 = Math.ceil((y + h) / size.height) - y0;
//(-2,-1,3,2)
return new mxRectangle(x0, y0, w0, h0);  

  

放大/缩小后图形位置计算:

//paddingLeft 加上相对于画布的x乘以缩放的n
X = left + x*n 

  

 

猜你喜欢

转载自www.cnblogs.com/ljyqd/p/11198945.html