Kinetic.TextPath
有没有办法在 Kineticjs 中使用沿路径居中文本。
如果没有,有人知道解决方法吗?我已经探索了 svg textpath 选项,但不确定如何将此 svg 放入 kineticjs。
我也尝试使用头发空间手动间隔文本,但 kineticjs 似乎将字符转换为正常空间,例如。text.setText(String.fromCharCode(8202))
Kinetic.TextPath
有没有办法在 Kineticjs 中使用沿路径居中文本。
如果没有,有人知道解决方法吗?我已经探索了 svg textpath 选项,但不确定如何将此 svg 放入 kineticjs。
我也尝试使用头发空间手动间隔文本,但 kineticjs 似乎将字符转换为正常空间,例如。text.setText(String.fromCharCode(8202))
标准文本路径没有沿路径的文本居中
我在这里检查了源代码:github.com/ericdrowell/KineticJS/blob/master/src/plugins/... API 中没有任何内容允许文本沿路径居中。看到您尝试了添加前导空格的不令人满意的方法。KineticJS 有一些非常好的 getXY-at-length-on-path 函数,您可以使用它们自己来完成。路径上的文本变得更加复杂,因为您必须考虑字符的旋转——“K”将根据曲线要求“K”旋转的方式在路径上占据不同的宽度。
在此处查看现有文本路径中的操作方式:https ://github.com/ericdrowell/KineticJS/blob/master/src/plugins/TextPath.js
findSegmentToFitCharacter 函数(从第 177 行开始)最具指导意义。
这些相关函数可用于编写以自己为中心的文本路径
Kinetic.Path.getLineLength
Kinetic.Path.getPointOnEllipticalArc
Kinetic.Path.getPointOnCubicBezier
Kinetic.Path.getPointOnQuadraticBezier
所以你需要做的是:
findSegmentToFitCharacter 很好地展示了如何以适当的角度旋转每个字符。
好编码!…如果你愿意分享你完成的结果,我会很感兴趣。
顺便说一句,每当我深入研究 KineticJS 源代码时,我总是对他们的代码印象深刻。