0

我正在对 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();



}
4

1 回答 1

1

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

于 2013-02-19T07:18:10.410 回答