svg变换矩阵改变元素的笔划。怎么预防这个?

时间:2013-02-18 22:37:33

标签: javascript html svg jquery-svg

我正在对svg-edit进行修改,我编写了一个函数,用户选择一个元素并单击一个按钮来触发一个要求新尺寸的函数,并将元素调整为调整大小的尺寸。

但是有一个问题。当尺寸调整大小时,笔划宽度也会有时调整大小。线看起来更薄。有什么办法可以防止这种情况发生吗?

这是我的功能:

function changeDimensions() 

{

    svgNode = svgCanvas.getSelectedElems()[0];

    var transformw=prompt("Enter your new width");
    var transformh=prompt("Enter your new height");
    var lastw = svgNode.getBoundingClientRect().width;
    var lasth = svgNode.getBoundingClientRect().height;

    newW=transformw/lastw;
    newH=transformh/lasth;
    alert(newH);
    alert(newW);


    svgCanvas.changeSelectedAttribute("transform", "matrix(" + newW + ", 0, 0, " + newH + ", 0, 0)");


    svgCanvas.recalculateAllSelectedDimensions();



}

1 个答案:

答案 0 :(得分:1)

Opera,Webkit和Firefox实现了SVG tiny vector-effects="non-scaling-stroke"。虽然据我所知,IE不支持它,但如果你需要支持,你需要在javascript中做一些手动调整笔画的东西。