javascript-在measureText时附加“ 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是什么,不一定都具有固定的字体大小,因此使用固定值可能会引起问题.
标签:d3-js,html5-canvas,javascript 来源: https://codeday.me/bug/20191122/2060703.html