Open xiaoiver opened 2 years ago
Path 部分有两点需要优化:
sampleSize
getPathBBoxTotalLength()
// 仅计算包围盒 const { x, y, width, height } = getPathBBoxTotalLength(absolutePath, { bbox: true, length: false }); // 计算时减少采样数,牺牲精度提升性能 const { x, y, width, height } = getPathBBoxTotalLength(absolutePath, { bbox: true, length: false, sampleSize: 10 });
另外需要性能测试。
在计算 Arc 长度 / 包围盒时,使用 10 段会造成结果精度差很多,暂时使用 30。
目前使用的分段方法似乎并不高效,需要对比下其他方式,例如: https://github.com/mondeja/svg-path-bbox
Path 部分有两点需要优化:
sampleSize
参数,这样当需要高精度时就增加分段,反之可以减少getPathBBoxTotalLength()
是一个二合一的方法,但有时仅需要计算包围盒或者长度。例如初始化 Path 时仅需要包围盒,此时计算长度就会造成浪费。可以通过参数控制,例如:另外需要性能测试。