Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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
Html 画布中文本轮廓的刺_Html_Canvas_Html5 Canvas - Fatal编程技术网

Html 画布中文本轮廓的刺

Html 画布中文本轮廓的刺,html,canvas,html5-canvas,Html,Canvas,Html5 Canvas,我正在使用html5画布绘制一些文本,但我得到了一些不好的结果,下面是我绘制文本的示例代码: var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); var x = 80; var y = 110; context.fillStyle = "white" context.font = '13px Arial'; context.lineWidth

我正在使用html5画布绘制一些文本,但我得到了一些不好的结果,下面是我绘制文本的示例代码:

  var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');
  var x = 80;
  var y = 110;

  context.fillStyle = "white"
  context.font = '13px Arial';
  context.lineWidth = 3;
  // stroke color
  context.strokeStyle = 'black';
  context.strokeText('ABCDEFGHIJKLMNOPQRSTUVWXYZ!', x, y);
  context.fillText('ABCDEFGHIJKLMNOPQRSTUVWXYZ!', x, y); 
我得到了这个结果

然后我把文本改成“abs”,得到了这个


你可以看到“M”和“s”看起来很难看,有人知道如何解决这个问题吗?

如果使用不同的字体,你可能会得到更好的效果


或者,您可以仅使用fillText并创建带有“.

的轮廓。这不是因为字体或大小,而是因为笔划路径中的线条是如何连接的

通过更改直线连接方法,尖峰将消失:

context.lineJoin = 'round';

此外,如果您喜欢锐角(没有斜接尖刺),请尝试以下方法:

context.lineJoin = 'miter';
context.miterLimit = 2;


这就成功了。

这是由于字体大小的原因,请尝试增加字体大小查看前面的Stackoverflow回答:太好了。这很有帮助