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