在画布中测量文本时,看到如下代码是很常见的
w = c.measureText(d.text + "m").width
来自https://github.com/jasondavies/d3-cloud/blob/master/d3.layout.cloud.js#L233
为什么人们在测量文本时会附加一个“m”。
在画布中测量文本时,看到如下代码是很常见的
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
是什么都不一定具有固定的字体大小,因此使用固定值可能会导致问题。