Snap SVG翻译具有旋转的元素

时间:2014-07-11 04:27:10

标签: svg rotation transformation snap.svg

我正在尝试移动(平移)已旋转的对象,当我移动(平移)旋转的对象时​​,它会失去它的旋转并且可以正确移动。如果在未旋转的对象上使用相同的代码,则正确移动。我在这里做错了什么?

这是a fiddle

此代码丢失了旋转。

var part = s.select("#part_2");
var t = new Snap.Matrix();
t.translate(part.getBBox().x,part.getBBox().y+18);
part.transform(t);

1 个答案:

答案 0 :(得分:4)

我不确定您希望转换应用的顺序。如果你想让方块移动使得在变换后应用向下,即向下旋转矩阵是一个角度,你就可以这样做......

    var t = part.transform().localMatrix;
    t.translate(0, 18);
    part.transform(t);

如果你想要永远失败那么你会做这样的事情......

    var t = new Snap.Matrix();
    t.translate(0, 18);
    t.add(part.transform().localMatrix);
    part.transform(t);

诀窍是获取形状的现有矩阵并附加/前置你想要的变换。