在paper.js中沿贝塞尔曲线绘制文本

5

是否可以使用Paper.js轻松地沿着贝塞尔曲线绘制文本?

我知道可以将文本附加到线路路径上,然后旋转它,但是我特别想绘制沿着曲线的文本。类似于http://www.w3.org/TR/SVG11/images/text/toap02.svg

我知道可以通过逐个打印每个字符并应用相应的旋转来实现这一点,但是我希望在Paper.js中更容易地实现这一点。

2个回答

14

如前一个答案所述,PaperJS不会直接提供此功能。但您可以用很少的努力实现此效果。

操作步骤如下:

  1. 获取文本中每个字形的x中心偏移量。可以通过使用PointText的宽度来计算到该字形的子字符串。
  2. 找到路径上要对齐文本的偏移点。
  3. 将单个居中字形放置在刚刚找到的点上。将字形旋转为路径的切线角度。

这是纸张草图:Align Text to Path Sketch

这是一个简单测试的结果:

在此输入图像说明

在应用旋转之前,您可以沿 y 轴移动字形的 PointText 对象以实现与路径的偏移(就像您示例中的红色文本一样)。


6

目前,Paper.js还没有实现文本沿路径排列的功能。当前,文本支持还比较简单,但是我们很快就会推出1.0版本,到时候这个问题就会有所改善。


2
有关Paper.js中文本支持的更新情况是否已经发布?我已经等了很长时间了。 - Raha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接