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

如何分步实现鼠标移出时将矩形颜色从白色改为黑色

解决鼠标移出矩形变色的分步方案

嘿,作为编程新手能自己动手写基础代码已经超棒啦!咱们一步步来搞定这个鼠标移出矩形时从白色变黑色的需求~

核心思路拆解

要实现这个交互,关键是每帧判断鼠标是否在矩形范围内,然后根据判断结果切换填充色。Processing的draw()函数会持续循环执行,刚好能帮我们实现实时的颜色更新。

完整可运行代码

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

void draw () {
  background (0);
  stroke (255);
  line (100,0,100,200);
  line (0,100,200,100);
  
  noStroke ();
  
  // 1. 判断鼠标是否在左上角矩形内
  boolean isMouseInTopLeft = mouseX > 0 && mouseX < 100 && mouseY > 0 && mouseY < 100;
  // 2. 根据位置设置填充色:在里面用白色,移出用黑色
  fill(isMouseInTopLeft ? 255 : 0);
  // 3. 绘制矩形
  rect(0, 0, 100, 100);
  
  // 给其他象限的矩形也加上同样逻辑(可选)
  // 右上角矩形
  boolean isMouseInTopRight = mouseX > 100 && mouseX < 200 && mouseY > 0 && mouseY < 100;
  fill(isMouseInTopRight ? 255 : 0);
  rect(100, 0, 100, 100);
  
  // 左下角矩形
  boolean isMouseInBottomLeft = mouseX > 0 && mouseX < 100 && mouseY > 100 && mouseY < 200;
  fill(isMouseInBottomLeft ? 255 : 0);
  rect(0, 100, 100, 100);
  
  // 右下角矩形
  boolean isMouseInBottomRight = mouseX > 100 && mouseX < 200 && mouseY > 100 && mouseY < 200;
  fill(isMouseInBottomRight ? 255 : 0);
  rect(100, 100, 100, 100);
}

分步细节解释

  • 步骤1:判断鼠标位置
    用mouseX和mouseY获取当前鼠标坐标,结合矩形的边界(左上角(0,0),宽高100),用逻辑与&&组合条件,确保鼠标的X、Y都落在矩形范围内,得到一个布尔值isMouseInTopLeft。
  • 步骤2:切换填充色
    这里用了三元运算符condition ? value1 : value2,相当于简化的if-else:如果鼠标在矩形内,填充白色(255),否则填充黑色(0)。你也可以写成标准的if-else,效果完全一样:
    if (isMouseInTopLeft) {
      fill(255);
    } else {
      fill(0);
    }
    
  • 步骤3:绘制矩形
    每次draw()循环都会重新判断鼠标位置、更新颜色、绘制矩形,所以能实时看到颜色变化。

新手小贴士

  • 如果希望鼠标刚好碰到矩形边缘时也算“在里面”,可以把判断条件里的<改成<=,>改成>=,比如mouseX >= 0 && mouseX <= 100。
  • Processing的background(0)每帧都会清空画布,这样之前的矩形会被擦掉,新的颜色矩形才能正确显示,不要漏掉这行哦~

内容的提问来源于stack exchange,提问作者Serkan K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:55:05