对于我目前的项目,我需要矩阵数学,这是2d变换的所有基本内容。我知道有像sylvester等框架,但我也发现了SVG DOM api中我需要的所有功能。所以有SVGMatrix,SVGPoint,SVGRect等等。
所以这是我的问题: 如果我创建一个内存SVG,只是为了成为Matrices,Points和Rects的工厂,这是否为我提供了性能优势?我可以在不同SVG的上下文中使用使用memory-svg创建的SVGMatrix(即将其应用于元素转换)吗?
问候菲律宾
答案 0 :(得分:1)
如果我创建一个内存SVG,只是为了成为 工厂为矩阵,点和矩形,这提供 我有性能优势吗?
使用SVG引擎的坐标转换比Javascript循环中的手动乘法更快,尤其是当有数千个点要转换时。因此,尽可能使用转换而不是重新计算Javascript中的坐标是一个明确的优势,您可以轻松地进行基准测试。此外,对path
d
属性的更改等DOM操作也很慢。
我可以使用使用memory-svg创建的SVGMatrix吗? 不同SVG的上下文(即将其应用于元素变换)?
是的,你可以,我每天午餐前十次这样做。 SVGMatrix
个对象是自由浮动的,并且不会以任何方式附加到它们的工厂SVGSVGElement
(它本身也称为分离的DOM对象)。