考虑到附加参数如何获得 Konva.TextPath 宽度

How to get Konva.TextPath width considering additional parameters

美好的一天,reader。

我正在尝试使用 Konva 创建带有动态路径的弯曲文本,所以我将 Konva.Text 转移到 Konva.TextPath,添加到 Text attrs 计算路径(代码示例写在最后) ,尽管考虑到下面列出的其他参数,我无法获得 Konva.TextPath 的正确宽度。我试过这个方法`

最接近我想要的是第3个选项(好像和第1个一样?)。

有没有办法获取Konva.Text路径的宽度,同时考虑像`

这样的参数

我阅读了文档,浏览了 Whosebug,但找不到任何方法。有什么我遗漏的吗?

function redraw(originTextNode: Konva.Text | Konva.TextPath)
   const textWidth = textNode.textWidth();
   const calcedNewPath = calcNewPath({...other, textWidth })

   const textNode = Konva.TextPath({
     ...originTextNode.getAttrs(),
     data: calcedNewPath,
});

谢谢

您可以使用 textPath.getTextWidth() 获得文本的宽度而无需 letterSpacing 调整。它将包括 fontFamily(如果加载了字体)和 fontSize。如果您想将 letterSpacing 应用于该值,您可以这样做:

var fullWidth = textPath.getTextWidth() + (textPath.text().length - 1) * letterSpacing;

呈现的文本路径的实际长度与路径的长度相比仍可能略有不同。