使用SVG api的矩阵数学

Matrix maths using SVG api

本文关键字:SVG api 使用      更新时间:2023-09-26

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

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

问候菲利普

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

使用SVG引擎的坐标转换比Javascript循环中的手动乘法更快,尤其是当需要转换数千个点时。因此,尽可能使用转换,而不是在Javascript中重新计算坐标,这无疑是一个可以轻松进行基准测试的优势。此外,像pathd属性的更改这样的DOM操作也像乌龟一样缓慢。

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

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