在 Canvas 上测量文本时,通常会看到如下代码:
w = c.measureText(d.text + "m").width
从https://github.com/jasondavies/d3-cloud/blob/master/d3.layout.cloud.js#L233
人们为什么在测量文本时会加上“m”。
最佳答案
我的猜测是,这里使用它来添加等于m
字符宽度的额外填充。
在JavaScript中,对字符串使用+
运算符可将其连接起来(如果尚未将其转换为字符串):
"Abc" + "m" // "Abcm"
1 + "m" // "1m"
这意味着,如果
d.text
的值为“Hello,world!”,则d.text + "m"
将等于:"Hello, world!m"
w = c.measureText("Hello, world!m").width
假设
m
字符的宽度为5个像素,则该方法的替代方法是:w = c.measureText(d.text).width + 5
但是,我认为
d.text
不一定是固定的字体大小,因此使用固定的值可能会引起问题。