svg 放大縮小後的比例

function getCoords(evt) {

    // 計算出當前屏幕與svg的比例
    var canvas = document.getElementById("canvase");
    var viewbox = svgRoot.getAttributeNS(null, "viewBox"); //獲取ViewBox屬性
    var params = viewbox.split(" ");
    // 屏幕和svg的比例 這是初始化比例
    var roteX =  svgRoot.clientWidth / parseFloat(params[2])  ;
    var roteY =  svgRoot.clientHeight / parseFloat(params[3])  ;

    // 用戶點擊的svg原始座標,當成屏幕座標
    userCoord.x = evt.layerX;
    userCoord.y = evt.layerY;

    console.log(svgRoot)
    // 若是平移
    var tx = parseFloat(params[0]),
        ty = parseFloat(params[1]);
    // 若是縮放
    // var x_scale = 1 / roteX,
    //     y_scale = 1 / roteY;

    // svg座標
    mouseCoord.x = (userCoord.x/roteX+tx)
    mouseCoord.y = (userCoord.y/roteY+ty)
    
  }canvas

相關文章
相關標籤/搜索