我试图总体上更好地了解raphael.js,但是我发现raphael.js文档有时会令人困惑,有时甚至会有些含糊。
谁能向我解释什么是矩阵以及如何使用它?
最佳答案
几乎没有关于Raphael中Matrix的良好,清晰的信息。但是,好消息是,它与SVG和CSS3中的Matrix转换几乎完全相同。
SVG中有一些有关矩阵变换的指南,但是它们通常假定您已经了解矩阵数学。如果没有,用处不大。
但是,有one good guide on matrix maths in CSS3。它还带有Matrix Construction Set(从2013年2月开始,它在Chrome中不起作用,但在Firefox中起作用)。由于CSS3和Raphael矩阵变换背后的数学原理基本相同,因此您可以使用此工具生成一组矩阵变换数,然后将其应用于Raphael,其结果应大致相同。
有关Matrix转换的所有内容的 super 快速概述:
。
someElement.matrix
是一个对象,每个数字都由字母给出(例如{a:1,b:0,c:0,d:1,e:0,f:0}
。直接设置这些值不会改变对象(因此您不能someElement.matrix.b = 3;
))someElement.matrix.split()
someElement.matrix.toTransformString();
someElement.animate({transform: ['m',0.5, -0.5, 0.5, 0.5, -0.5, 0.5]}, 1000);
someElement.transform(['m',0.5, -0.5, 0.5, 0.5, -0.5, 0.5]);
someElement.animate({transform: 'm0.5 -0.5 0.5 0.5 -0.5 0.5'}, 1000);
someElement.transform('m0.5 -0.5 0.5 0.5 -0.5 0.5');
1 0 0 1 0 0
。应用此选项将转换重置为其默认状态。 a
的工作方式类似于x-scale,b
的工作方式类似于y-shear,c
的工作方式类似于x-shear,d
的工作方式类似于y-scale,e
和f
的工作方式类似于x和y move。但是它们以数学上复杂的方式相互作用。这并不简单。 关于javascript - raphael中的 “matrix”是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10939195/