在测量画布中的文本
时,看到代码如下w = c.measureText(d.text + "m").width
来自https://github.com/jasondavies/d3-cloud/blob/master/d3.layout.cloud.js#L233
为什么人们追加一个" m"在测量文本时。
答案 0 :(得分:3)
我的猜测是这里用来添加等于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
不一定有固定的字体大小,所以使用固定值可能会导致问题。