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

Java Processing可调速风扇开发求助:实现转速增减与显示

Processing 风扇程序实现方案

需求

  • 按下+键提升风扇转速
  • 按下-键降低风扇转速
  • 实时显示当前转速

原代码问题

  1. btton()函数存在语法错误(未闭合代码块)
  2. 风扇叶片旋转逻辑未整合到主绘制流程,无法正常旋转
  3. 缺少键盘事件处理,无法实现按键调速
  4. 没有转速显示功能
  5. 叶片布局逻辑错误,仅单个叶片且未围绕中心旋转

修复并优化后的完整代码

final int coverSize = 250;
final int centralDiskSize = 30;
final int bladeCount = 3; // 风扇叶片数量
final float bladeWidth = 15;
final float bladeLength = coverSize / 2 - 20;

float angle = 0;
float speed = 0.05; // 初始转速
float minSpeed = 0; // 最小转速(防止停转后反转)
float maxSpeed = 0.3; // 最大转速上限

void setup() {
  size(500, 500);
  textAlign(CENTER, CENTER);
  textSize(20);
}

void draw() {
  background(200);
  
  // 绘制风扇外罩
  drawFanCover();
  
  // 绘制旋转的叶片
  rotateBlades();
  
  // 显示当前转速
  displaySpeed();
}

void drawFanCover() {
  strokeWeight(2);
  noFill();
  // 循环绘制多层外罩圆环
  for (int i = 0; i < 5; i++) {
    float diameter = coverSize - i * 45;
    ellipse(width/2, height/2, diameter, diameter);
  }
  // 中心圆盘
  fill(0);
  ellipse(width/2, height/2, centralDiskSize, centralDiskSize);
  noFill();
}

void rotateBlades() {
  pushMatrix();
  translate(width/2, height/2); // 将坐标原点移到风扇中心
  rotate(angle); // 整体旋转角度
  
  fill(100);
  stroke(0);
  // 绘制3个均匀分布的叶片
  for (int i = 0; i < bladeCount; i++) {
    rotate(TWO_PI / bladeCount); // 每个叶片间隔120度
    rect(-bladeWidth/2, -bladeLength, bladeWidth, bladeLength);
  }
  
  popMatrix();
  angle += speed; // 更新旋转角度,实现动画
}

void displaySpeed() {
  fill(0);
  // 将转速转换为更直观的整数显示
  int displayValue = (int)(speed * 100);
  text("当前转速: " + displayValue, width/2, height - 30);
}

void keyPressed() {
  if (key == '+') {
    // 提升转速,不超过最大值
    speed = min(speed + 0.01, maxSpeed);
  } else if (key == '-') {
    // 降低转速,不低于最小值
    speed = max(speed - 0.01, minSpeed);
  }
}

关键说明

  • 转速控制:通过speed变量控制旋转速度,keyPressed()监听按键事件调整转速,同时限制范围避免异常
  • 叶片旋转:使用矩阵变换pushMatrix()/popMatrix()确保叶片围绕中心旋转,循环绘制多个叶片实现真实风扇效果
  • 模块化设计:拆分功能到独立函数,代码结构清晰,便于后续修改扩展
  • 转速显示:用text()在屏幕底部显示转速,将浮点型的speed转换为整数,更易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:11:08