画布自动扩大/缩小计算:
//得到所拖拽图形相对于画布的位置(-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