我想移动RaphaelElement并创建一个简单的测试用例:
var paper = Raphael(0, 0, 500, 500);
var rect = paper.rect(50, 50, 100, 100);
rect.attr("fill", "blue");
rect.matrix.translate(300, 300);
但矩形没有移动。起初我认为矩阵可能没有正确更新并尝试了这个:
//...
alert("" + rect.matrix.x(0,0)); // prints 0
rect.matrix.translate(300, 300);
alert("" + rect.matrix.x(0,0)); //prints 300
显然矩阵已经改变,但矩形并不关心。因此我将代码更改为:
rect.matrix=rect.matrix.translate(300,300);
但要么是破坏了程序,要么根本没有效果。 看起来我缺少某种更新方法,将矩阵应用于RaphaelElement。看起来像这样:
rect.updateMatrix();
我在文档中搜索过但没有找到这样的方法。 RaphaelJs中矩阵的规范用法是什么?
答案 0 :(得分:2)
rect.translate(300, 300)
将应用翻译或rect.transform("t300,300")
另外
rect.transform(['m',mat.a, mat.b, mat.c, mat.d, mat.e, mat.f]);
可用于将现有矩阵(mat)应用于矩形。
答案 1 :(得分:0)
我在Stackoverflow上找到了另一个参考,它解释了矩阵。它解决了我的问题。