Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Paper.js PointText获取基线坐标,而不是左下角_Javascript_Spacing_Paperjs - Fatal编程技术网

Javascript Paper.js PointText获取基线坐标,而不是左下角

Javascript Paper.js PointText获取基线坐标,而不是左下角,javascript,spacing,paperjs,Javascript,Spacing,Paperjs,检查这个Paper.js。单击“文本”查看边界框。请注意,我将leading属性设置为与字体大小相同。默认情况下,它是字体大小的1.2倍 为什么PointText的底部有空白?如何删除它以使边界框紧紧包裹文本?或者,如何确定文本真实基线的y值,而不是我们当前给定的值 编辑 底部的“边距”是指有降号的字母,如q和p。所以这里真正的问题是如何得到点文本基线的y坐标?我特别需要基线,因为这是我们正在使用的另一个库插入文本的方式,并且插入需要完全相同。根据您的限制,也许您的问题可以通过按左上角排列并始终

检查这个Paper.js。单击“文本”查看边界框。请注意,我将
leading
属性设置为与字体大小相同。默认情况下,它是字体大小的1.2倍

为什么PointText的底部有空白?如何删除它以使边界框紧紧包裹文本?或者,如何确定文本真实基线的y值,而不是我们当前给定的值

编辑


底部的“边距”是指有降号的字母,如q和p。所以这里真正的问题是如何得到点文本基线的y坐标?我特别需要基线,因为这是我们正在使用的另一个库插入文本的方式,并且插入需要完全相同。

根据您的限制,也许您的问题可以通过按左上角排列并始终将前导设置为字体大小的95.5%来解决。对于大多数文本,这会使您非常接近

间距正确。将“TEXT”更改为“Tejas”,您将看到字符“j”中的下行字符与大写字符顶部的间距相等

我不相信有办法获得PointText项的文本边界

因此,我认为arthur.sw的建议是最好的答案。我也这样做,除非文本非常简单、单行且不可编辑。我最终在画布上创建了一个文本框或文本区域,并对其进行了适当的定位。从长远来看,这可能是最好的解决方案;我不知道为什么纸张应该复制浏览器已经处理的所有内容

使用此选项,您将希望相对于所显示的视图或画布定位文本。您可能需要使用和


下面是一个帮助我可视化项目坐标空间和全局坐标空间之间关系的示例。

我建议使用CSS中的文本,在画布顶部使用常规html元素。这通常是最简单的解决方案。@arthur.sw您如何将其与允许平移和缩放的画布保持同步?嗯,您也可以平移和缩放html元素。。。这就是我在romanesco.city上所做的“按左上角排列”是什么意思?用这种方法,有没有类似的方法?我正在编辑答案,试图回答你的最后一个问题。