【问题标题】:How to draw rectangle with 1px border using html5 canvas?如何使用 html5 画布绘制具有 1px 边框的矩形?
【发布时间】:2012-09-03 10:41:39
【问题描述】:

我不知道为什么那个白点会出现在创建的矩形的右下角。 (WinXP下仅21.0.1180.83和.89可见)

这取决于画布高度...

http://jsbin.com/ejeyef/1/

【问题讨论】:

  • 白点在firefox 15.0中不可见
  • 白点在 Chromium 18.0.1025.168 (Developer Build 134367 Linux) Ubuntu 12.04 中不可见。
  • 白点在 OS X 10.8.1 上的 Chrome 21.0.1180.82 中不可见
  • 在我的浏览器中看起来不错(Windows 7 上的 Opera 12.02)。好像您发现了一个特定于浏览器的错误。
  • 在 Windows 7 上的 Chrome 21.0.1180.83 m 下可见。

标签: javascript html canvas


【解决方案1】:

这可能与 Subpixel rendering 有关。查看您的代码,您执行以下操作:

c.rect(10.5, 10.5, 100, 100);

这意味着:“在距离 X 10.5px 和距离 Y 10.5px 的坐标处绘制一个大小为 100x100px 的矩形”。屏幕/浏览器无法呈现“半像素”,因此它总是在某处四舍五入。这可能是您的问题的原因。

要解决此问题,请不要对此类事情使用半值。这工作正常:

c.rect(10, 10, 100, 100);

【讨论】:

  • 比矩形会丑。
  • 必须这样做 with this (并且 - 如上所述 - 不是错误)。
  • @MarcoK 使用浮点坐标是一种被广泛接受的在 HTML5 画布上绘制而不会出现模糊的方法。
猜你喜欢
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
相关资源
最近更新 更多