SVG API:单个线段的长度

2024-04-06

是否可以使用 Javascript API 获取 SVG 路径中单个段(从锚点到锚点)的长度?


我制作了弗朗西斯·海姆舍解决方案的一些整洁版本。这是完整的源代码:

function getSegmentLengths(path) {
  let segList = path.pathSegList;

  // temporary path for computing segments
  let lengthPath = document.createElementNS("http://www.w3.org/2000/svg", 'path');
  let lastLength = 0;
  let segLengths = [];

  for(let i = 0; i < segList.numberOfItems; i += 1) {
    let segObj = segList.getItem(i);
    lengthPath.pathSegList.appendItem(segObj);
    let currentLength = lengthPath.getTotalLength();
    let segmentLength = currentLength - lastLength;
    segLengths.push({
      currentLength,
      segmentLength,
      type: segObj.pathSegTypeAsLetter
    });
    lastLength = currentLength;
  }

  return segLengths;
}

重要的提示:要使其在当前版本的 Chrome (60) 中完全运行,您必须使用路径段填充 https://github.com/progers/pathseg.

请参阅我的样本Code Pen https://codepen.io/bez997/pen/dzJemZ?editors=1010.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVG API:单个线段的长度 的相关文章

随机推荐