0

我想移动一个 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 中矩阵的规范用法是什么?

4

2 回答 2

2

rect.translate(300, 300)将应用翻译或替代rect.transform("t300,300")

rect.transform(['m',mat.a, mat.b, mat.c, mat.d, mat.e, mat.f]);

可用于将现有矩阵(垫子)应用于矩形。

于 2013-01-03T10:51:21.907 回答
0

我在 Stackoverflow 上找到了另一个参考资料,它在解释矩阵方面做得非常出色。它解决了我的问题。

StackOverflow 矩阵说明

于 2014-06-06T16:42:32.863 回答