zrender放大后画图求原坐标

//zoom  放大倍数
zr.on("click", function (e) {
原X坐标 = e.offsetX/zoom + (Math.abs(e.target.transform[4])/zoom);
原Y坐标 = e.offsetY/zoom + (Math.abs(e.target.transform[5])/zoom);
 e.offsetX = e.offsetX/zoomx;
 e.offsetY =  e.offsetY/zoomx;
 var circle = new zrender.Circle({
         shape: {
                  cx: e.offsetX,
                  cy:  e.offsetY,
                  r: 3
                },
        xy:[原X坐标,原Y坐标],
        scale:[zoom,zoom],
    });
     circleGroup.add(circle);
     zr.add(circleGroup);
  zr.on("mousewheel", function (e) {
        zoom++;
        circleGroup.eachChild(function (circle) {
             circle.attr({
                    scale: [zoomx, zoomx],
                    origin: [e.offsetX, e.offsetY],
                    shape:{
                        cx:circle.xy[0],
                        cy:circle.xy[1],
                        r:3
                    }
                })
            
        })
    })
})

以上代码并不是完整的。

zrender通过scale放大后,再点点需要先算出原坐标存起来,然后点的点的坐标是除以放大倍数后的坐标,再放大缩小的时候把原坐标覆盖当时点的坐标。

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页