Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何与RaphaelJS一起使用矩阵_Javascript_Graphics_Web_Svg_Raphael - Fatal编程技术网

Javascript 如何与RaphaelJS一起使用矩阵

Javascript 如何与RaphaelJS一起使用矩阵,javascript,graphics,web,svg,raphael,Javascript,Graphics,Web,Svg,Raphael,我想移动一个Raphaelement并创建一个简单的测试用例: 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)); // pr

我想移动一个Raphaelement并创建一个简单的测试用例:

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);
但这要么使程序崩溃,要么根本没有效果。 我似乎缺少某种更新方法,将矩阵应用于Raphaelement。看起来像这样的东西:

rect.updateMatrix();
我在文档中搜索过,但没有找到这样的方法。RaphaelJs中矩阵的规范用法是什么?

rect.translate(300,300)
将应用一种翻译或其他方法


可用于将现有矩阵(mat)应用于rect。

我在Stackoverflow上找到了另一个参考,它对解释矩阵做了非常出色的工作。它解决了我的问题


rect.translate不推荐使用,rect.transform接受字符串。因为在我的应用程序中会有很多移动,所以我希望避免使用transform。如果矩阵不可用,他们为什么要提供矩阵?嘿,我刚刚意识到你也回答了我的另一个问题。关于如何在拉斐尔中应用变换。您提供了矩阵作为解决方案。你可以发布一些代码,你将如何使用矩阵移动拉斐尔元素?这可能是greatI认为矩阵是只读的,我怀疑它是元素上变换的合并矩阵。那么我应该如何使用矩阵替换变换方法?rect.transform(“m1,2,3,4,5,6”),或者你需要问一个更清楚的问题。
rect.transform(['m',mat.a, mat.b, mat.c, mat.d, mat.e, mat.f]);