使用SVG api的矩阵数学

时间:2012-08-29 08:17:16

标签: javascript html5 svg

对于我目前的项目,我需要矩阵数学,这是2d变换的所有基本内容。我知道有像sylvester等框架,但我也发现了SVG DOM api中我需要的所有功能。所以有SVGMatrix,SVGPoint,SVGRect等等。

所以这是我的问题: 如果我创建一个内存SVG,只是为了成为Matrices,Points和Rects的工厂,这是否为我提供了性能优势?我可以在不同SVG的上下文中使用使用memory-svg创建的SVGMatrix(即将其应用于元素转换)吗?

问候菲律宾

1 个答案:

答案 0 :(得分:1)

  

如果我创建一个内存SVG,只是为了成为   工厂为矩阵,点和矩形,这提供   我有性能优势吗?

使用SVG引擎的坐标转换比Javascript循环中的手动乘法更快,尤其是当有数千个点要转换时。因此,尽可能使用转换而不是重新计算Javascript中的坐标是一个明确的优势,您可以轻松地进行基准测试。此外,对path d属性的更改等DOM操作也很慢。

  

我可以使用使用memory-svg创建的SVGMatrix吗?   不同SVG的上下文(即将其应用于元素变换)?

是的,你可以,我每天午餐前十次这样做。 SVGMatrix个对象是自由浮动的,并且不会以任何方式附加到它们的工厂SVGSVGElement(它本身也称为分离的DOM对象)。