在canvas HTML5中循环使用"gap "广场之间
Looping a grid in canvas HTML5 with "gaps" between squares?
我想创建一个5x5的网格,正方形40x40px,中间间隔4px,这是一张图片:
https://i.stack.imgur.com/hu96a.png所以我打算这样做:
$(document).ready(function(){
var ctx = document.getElementById('grid').getContext('2d');
for (var y = 0; y < 5; y++) {
for (var x = 0; x < 5; x++) {
ctx.fillStyle = "rgb(200,0,0)";
ctx.fillRect ((40*y)+4*(y+1),(40*x)+4*(x+1),40*(y+1)+4*(y+1),40*(x+1)+4*(x+1));
};
};
});
但它没有工作,我想有一个更简单的方法来做到这一点,但我只是不知道如何!我怎样才能达到预期的结果?
谢谢!
参见
和代码:
$(document).ready(function(){
var ctx = document.getElementById('grid').getContext('2d');
ctx.fillStyle = "rgb(200,0,0)";
ctx.beginPath();
for (var x = 0, i = 0; i < 5; x+=44, i++) {
for (var y = 0, j = 0; j < 5; y+=44, j++) {
ctx.rect (x, y, 40, 40);
}
}
ctx.fill();
ctx.closePath();
});
的另一种方法:
$(document).ready(function(){
var ctx = document.getElementById('grid').getContext('2d');
ctx.fillStyle = "rgb(200,0,0)";
for (var x = 0, i = 0; i < 5; x+=44, i++) {
for (var y = 0, j = 0; j < 5; y+=44, j++) {
ctx.fillRect (x, y, 40, 40);
}
}
});
在这两种情况下,我从for
块中删除了ctx.fillStyle
以提高性能,因为画布状态机的变化减慢了绘图过程。
编辑:
正如markE在注释中指出的那样,您也可以使用以下方法:
$(document).ready(function(){
var ctx = document.getElementById('grid').getContext('2d');
var size = 40;
var offset = 4;
ctx.fillStyle = "rgb(200,0,0)";
for (var x = 0; x < 5; x++) {
for (var y = 0; y < 5; y++) {
ctx.fillRect (x*(size+offset), y*(size+offset), size, size);
}
}
});
这只是个人风格的问题!
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 插入“;img src"在javascript中