我正在尝试移动(平移)已旋转的对象,当我移动(平移)旋转的对象时,它会失去它的旋转并且可以正确移动。如果在未旋转的对象上使用相同的代码,则正确移动。我在这里做错了什么?
这是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);
答案 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);
诀窍是获取形状的现有矩阵并附加/前置你想要的变换。