1

对于我目前的项目,我需要矩阵数学,二维转换的所有基本内容。我知道有 sylvester 等框架,但我也在 SVG DOM api 中找到了我需要的所有功能。所以有一个SVGMatrix,一个SVGPoint,一个SVGRect等等。

所以这是我的问题:如果我创建一个内存 SVG,只是为了成为矩阵、点和矩形的工厂,这会给我带来性能优势吗?我可以在不同 SVG 的上下文中使用使用 memory-svg 创建的 SVGMatrix(即将其应用于元素变换)吗?

问候菲利普

4

1 回答 1

1

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

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

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

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

于 2017-01-31T16:23:15.620 回答