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

Processing堆叠正方形旋转循环效果复现问题求助

Processing嵌套旋转矩形效果修复方案

你代码的问题集中在旋转逻辑、边长参数设置两个部分,调整后可直接实现目标效果:

修正后的完整代码

void setup() {
  size(500, 500);
}

void draw() {
  rectMode(CENTER);
  noFill();
  stroke(0);
  recta();
}

void recta() {
  // 初始矩形边长设为画布可容纳的最大值
  float sideLength = 400;
  // 每次旋转的角度
  float rotateAngle = radians(10);
  
  for (int i = 0; i < 20; i++) {
    pushMatrix();
    // 移动到画布中心
    translate(250, 250);
    // 对当前矩形应用旋转
    rotate(rotateAngle * i);
    // 绘制当前大小的矩形
    rect(0, 0, sideLength, sideLength);
    popMatrix();
    // 边长每次减小20
    sideLength -= 20;
  }
}

主要修改点

  • 原代码旋转角度为360度,相当于无旋转,修改为每次新增10度的旋转量,每次绘制的矩形都会比上一个多转一定角度
  • 原矩形初始边长仅为10,还每次减20很快就会变成负数无法正常绘制,修改为初始边长400,每次减20,20次循环后刚好归零,实现从大到小的嵌套效果
  • 旋转逻辑调整到矩阵变换栈内部,仅对当前绘制的矩形生效,不会干扰全局坐标
  • 把固定的描边、无填充配置放到循环外,减少冗余代码

运行上述代码即可得到你需要的嵌套旋转矩形效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:36:07