canvas画出的圆0度90度180度360度的地方明显感觉没有其他地方圆,是什么原因

用Canvas绘制出来的圆0度90度180度360度的地方明显比其他地方要平一些~ 是canvas本身的问题还是有其他解决方法
图片描述

阅读 9.1k
2 个回答

不是抗鋸齒的問題,我也遇到過。

是因爲 canvas 尺寸和圓尺寸正好一致,而 canvas 繪製圓的時候,卻是以 radius 作爲 lineWidth 的中心而非外圍,所以導致被截取半個 lineWidth。

只要讓 canvas 尺寸向四周增加半個 lineWidth 即可。

可能是画布或者浏览器没有开启抗锯齿的原因(旁边的文字也有锯齿)。手动开启HTML5 Canvas的抗锯齿可以用

canvas.getContext('2d').imageSmoothingEnabled = true;

或者直接把整个画布偏移0.5像素:

canvas.getContext('2d').translate(0.5, 0.5);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题