You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套循环生成方格网格:双滑块调节宽高的高度功能实现问题

核心修改点

  • 修复初始化循环逻辑:原有循环嵌套会生成125个多余网格元素,改为5列×5行的标准嵌套循环,每个网格元素构造时直接存储对应的行、列索引,避免后续通过数组下标反算坐标时出错
  • 修正Y轴坐标计算逻辑:原有注释的Y轴计算复用了X轴的公式,不符合行定位规则,改为行索引 × 高度滑块数值的正确逻辑
  • 网格矩形的宽高分别绑定两个滑块的数值,保证元素大小和间距同步调整

修改后完整代码

let bubbles = [];
var slider, slider2;
function setup() {
  var canvas = createCanvas(windowWidth, windowHeight);
  // 宽度调节滑块
  slider = createSlider(10, 260, 260);
  // 高度调节滑块
  slider2 = createSlider(10, 260, 260);
  // 初始化5行5列网格
  for (var col = 0; col < 5; col++) {
    for (var row = 0; row < 5; row++) {
      let b = new Bubble(col, row);
      bubbles.push(b);
    }
  }
}
function draw() {
  background(0);
  for (let i = 0; i < bubbles.length; i++) {
    bubbles[i].show();
  }
}
class Bubble {
  constructor(col, row) {
    // 存储当前网格的列、行索引,无需后续反算
    this.col = col;
    this.row = row;
    this.brightness = 0;
  }

  show() {
    push();
    stroke(255);
    strokeWeight(0.2);
    fill(this.brightness);
    // 列索引×宽度滑块值 = X坐标
    let x = this.col * slider.value();
    // 行索引×高度滑块值 = Y坐标
    let y = this.row * slider2.value();
    translate(x, y);
    // 矩形宽高分别对应两个滑块的数值
    rect(0, 0, slider.value(), slider2.value());
    pop(); 
  }
}

内容的提问来源于stack exchange,提问作者Melandin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:39:02