在firefox中的画布上绘图时,如果您尝试绘制或移动到超出画布边界的点,则会抛出错误(这是直接从Firebug复制/粘贴):
An invalid or illegal string was specified" code: "12
其他浏览器不会抛出错误。这适用于绘图方法(lineTo,arc等)以及图像绘制。在绘制之前使用画布的宽度和高度进行快速边界检查很容易,但是绘制部分内容呢?
例如,假设您有一个圆,由中心点和半径定义,并用弧()绘制。如果进行边界检查,中心可能不在画布上,而圆的一部分在技术上仍应可见。因此,圆圈将完全绘制或根本不绘制:如果中心点不在画布上,则无法仅绘制圆形的一部分。
有没有人可以解决这个问题?
我想到的是使用一个大的“世界缓冲区”画布,然后将其复制到显示画布。另一个可能是在缓冲区画布的中心绘制每个对象,然后将新绘制的像素复制到显示画布的正确位置。
人们已经采取了哪些措施来解决这个问题?
答案 0 :(得分:1)
画布将图像裁剪到其视图的边界矩形。在此边界框外绘图应该没有问题。它不会出现在你的绘图上。发布一个特定示例,看看我们是否可以重现错误。