【发布时间】:2015-10-06 21:41:46
【问题描述】:
当我尝试使用以下方法在画布上绘制大量 (+5000) 矩形时,我的分页符(chrome oops 页面):
矩形:
ctx.rect(x,y,options.missSize,options.missSize);
ctx.stroke();
但是,如果我使用以下任何一种方法绘制相同数量的圆形、三角形或 X,我的页面不会中断:
圈子:
ctx.beginPath();
ctx.arc(x,y,options.missSize/2,0,2*Math.PI);
ctx.stroke();
X:
ctx.beginPath();
ctx.moveTo(x - options.missSize/2, y - options.missSize/2);
ctx.lineTo(x + options.missSize/2, y + options.missSize/2);
ctx.stroke();
ctx.moveTo(x + options.missSize/2, y - options.missSize/2);
ctx.lineTo(x - options.missSize/2, y + options.missSize/2);
ctx.stroke();
三角形:
ctx.beginPath();
ctx.moveTo(x, y);
ctx.lineTo(x+(options.missSize/2), y+options.missSize);
ctx.lineTo(x-(options.missSize/2), y+options.missSize);
ctx.lineTo(x, y);
ctx.stroke();
为什么rect 会导致我的页面崩溃,而其他绘图函数都没有任何问题?
【问题讨论】:
-
您是否也在为每个矩形开始一条新路径?否则笔画会覆盖越来越多的路径,这与您每次都使用 beginPath 的情况不同。
-
你能创建一个小提琴来演示吗?
-
@doldt 好眼力!果然我忘了在代码块中添加
beginPath(),谢谢!发布为答案,我很乐意接受!
标签: javascript html canvas drawing