检查此 Paper.js sketch .单击“文本”以查看边界框。请注意,我将 leading
属性设置为与字体大小相同。默认情况下,它是字体大小的 1.2 倍,根据 documentation .
为什么PointText底部有空白?如何移除它以使边界框紧紧包裹文本?或者,如何确定文本真实基线的 y 值,而不是我们当前给出的值?
编辑
底部的“边距”用于具有下部的字母,如 q 和 p。所以这里真正的问题是如何获得 PointText 基线的 y 坐标?我特别需要基线,因为这是我们正在使用的另一个库插入文本的方式,并且插入需要完全相同。
最佳答案
间距正确。将“TEXT”更改为“Tejas”,您会看到字符“j”中的下部与大写字符的顶部具有相等的间距。
我认为没有办法获取 PointText 项目的文本边界。
因此,我认为 arthur.sw 的建议是最好的答案。除非文本非常简单、单行且不可编辑,否则我也会这样做。我最终在 Canvas 上创建了一个文本框或文本区域并将其适当定位。从长远来看,这可能是最好的解决方案;我不确定为什么 paper 应该复制浏览器已经处理的所有内容。
有了这个,您将希望相对于正在显示的 View 或 Canvas 定位文本。您可能需要使用 globalToLocal和 localToGlobal
这是一个 sketch这有助于我可视化项目的坐标空间与全局坐标空间之间的关系。
关于javascript - Paper.js PointText 获取基线坐标而不是左下角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35281006/