Javascript svg仅克隆缩放组的形状

Javascript svg仅克隆缩放组的形状,javascript,svg,Javascript,Svg,我创建了一个组,然后进行了缩放。我只想复制缩放组的形状,不想复制其他属性。特别是我想去掉变换矩阵。我需要一个独立于缩放组的新组。我不知道是否有可能做到这一点?代码如下: 汽车组: <svg id="game" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="loadFunction()" > <!-- Car -->

我创建了一个组,然后进行了缩放。我只想复制缩放组的形状,不想复制其他属性。特别是我想去掉变换矩阵。我需要一个独立于缩放组的新组。我不知道是否有可能做到这一点?代码如下:

汽车组:

<svg id="game" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" onload="loadFunction()" >
    <!-- Car -->
    <g id="exCar" x="50" y="500"   transform="" >
        <path id="front" d="M 40 500  Q 110 450 110 500 L 40 500" fill="pink" stroke="black" />
        <path id="window" d="M 40 500 L 50 530 L 100 530 L 110 500 L 40 500 "stroke="black" />
        <path id="sides" d="M 40 500 L 40 580 L 50 560 Q 55 550 50 530 L 40 500 M 110 500 L 110 580 L 100 560 Q 95 550 100 530 L 110 500" fill="pink" stroke="black" />
        <path id ="back" d="M 40 580 L 100 560  L 40 580" fill="pink" stroke="blue" />
        <path id="wheels" d="M 40 475 L 30 475 L 30 500 L 40 500 z M 110 475 L 120 475 L 120 500 L 110 500 z M 40 545 L 30 545 L 30 570 L 40 570 z" fill="yellow" stroke="black" />
        <image id="carpicture2" x="50" y="455" xlink:href="img.jpg"></image>
        <text id="carName" x="50" y="575"></text>
    </g>
</svg>
缩放比例:

document.getElementById("exCar").setAttribute(
        "transform",
        "matrix(" + result / 100 + ",0,0," + result / 100 + ","
                + (x - (result / 100 * x)) + "," + (y - (result / 100 * y))
                + ")");

(结果由滑块计算)

好的,我想我现在理解了问题所在,您正在单击进行克隆,因此exCar已经在该点进行了缩放

我想唯一的选择是清除克隆函数中的trasnformation矩阵:

newCar.setAttribute("transform", "matrix(1,0,0,1,0,0)");
并进行翻译:

newCar.setAttribute("transform", "translate(350,100)");

@mihai请不要睡觉:)嗨,你能展示一下你是如何进行缩放的吗?尽管x,y坐标发生了变化,但它仍然在exCar上贪婪:)你正在为组设置x,y坐标,但路径数据保持不变。你需要做一个翻译(答案编辑),但我会用箭头移动新车,我不想要一个变换后的矩阵。现在如果我再次变换它,它与exCar有什么区别?它不会创建一个转换矩阵吗?我也不知道为什么,但新车不是缩放尺寸。它是exCarOk的第一个尺寸,然后你需要通过js方法进行转换,而不是setAttribute。稍后我将尝试设置JSFIDLE。
newCar.setAttribute("transform", "matrix(1,0,0,1,0,0)");
newCar.setAttribute("transform", "translate(350,100)");