这可能与子像素渲染有关。看着你的代码,你做了以下操作: c.rect(10.5, 10.5, 100, 100); 这意味着:“在X轴和Y轴坐标分别为10.5像素的位置上,绘制一个大小为100x100像素的矩形。”屏幕/浏览器无法渲染“半个像素”,因此它总是在某个地方四舍五入。这可能是您问题的原因。要解决此问题,只需不要对此类事物使用半值即可。这样做很好:c.rect(10, 10, 100, 100);