以下是一种可能的实现方式:

// 获取画布元素
const canvas = document.getElementById('myCanvas');
// 获取绘图上下文
const ctx = canvas.getContext('2d');

// 定义单元格大小和行列数
const cellSize = 30;
const rows = 10;
const cols = 10;

// 设置起始点为原点
let x = 0;
let y = 0;

// 循环绘制横线和竖线
for (let i = 0; i <= rows; i++) {
  // 绘制横线
  ctx.beginPath();
  ctx.moveTo(x, y);
  ctx.lineTo(x + cols * cellSize, y);
  ctx.stroke();
  // 更新起始点的纵坐标
  y += cellSize;

  // 绘制竖线
  ctx.beginPath();
  ctx.moveTo(x, y);
  ctx.lineTo(x, y + rows * cellSize);
  ctx.stroke();
  // 更新起始点的横坐标
  x += cellSize;
}

解释一下代码:

首先,获取画布元素和绘图上下文:

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

然后,定义单元格大小和行列数:

const cellSize = 30;
const rows = 10;
const cols = 10;

接着,设置起始点为原点:

let x = 0;
let y = 0;

最后,循环绘制横线和竖线:

for (let i = 0; i <= rows; i++) {
  // 绘制横线
  ctx.beginPath(); // 开始路径
  ctx.moveTo(x, y); // 移动到起点
  ctx.lineTo(x + cols * cellSize, y); // 划线到终点
  ctx.stroke(); // 绘制路径
  // 更新起始点的纵坐标
  y += cellSize;

  // 绘制竖线
  ctx.beginPath(); // 开始路径
  ctx.moveTo(x, y); // 移动到起点
  ctx.lineTo(x, y + rows * cellSize); // 划线到终点
  ctx.stroke(); // 绘制路径
  // 更新起始点的横坐标
  x += cellSize;
}

具体地,每次循环先绘制一条横线,然后更新起始点的纵坐标;再绘制一条竖线,然后更新起始点的横坐标。循环行数+1次,就可以完成整个网格的绘制了

js 从原点00的位置花网格

原文地址: https://www.cveoy.top/t/topic/gfbG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录