Java 如何根据处理过程中的鼠标位置更改RGB颜色3?

Java 如何根据处理过程中的鼠标位置更改RGB颜色3?,java,processing,Java,Processing,我正在Processing3中编写一个小程序,使我能够将背景更改为存储在阵列中的特定颜色RGB代码。R、G和B的每个值都存储在单独的数组中 更改鼠标水平位置会更改背景的颜色 然而,这个解决方案代码是相当重复的,并且有很多if/else语句。我想使用for()循环来简化代码并减少重复。但是,我很难在for()循环中包含鼠标位置变量。是否可以使用for()循环简化此代码,并以某种方式映射鼠标位置以访问数组项?这是我现在掌握的代码: int[] r = {255,249,240,233,227}; i

我正在Processing3中编写一个小程序,使我能够将背景更改为存储在阵列中的特定颜色RGB代码。R、G和B的每个值都存储在单独的数组中

更改鼠标水平位置会更改背景的颜色

然而,这个解决方案代码是相当重复的,并且有很多if/else语句。我想使用for()循环来简化代码并减少重复。但是,我很难在for()循环中包含鼠标位置变量。是否可以使用for()循环简化此代码,并以某种方式映射鼠标位置以访问数组项?这是我现在掌握的代码:

int[] r = {255,249,240,233,227};
int[] g = {115,138,157,173,187}; 
int[] b = {0,18,63,94,120};

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

void draw() {
    int x = mouseX;

    if(x >= 0 && x <=100) {
        background(r[0], g[0], b[0]);
    }

    else if (x >= 101 && x <= 200){ 
        background(r[1], g[1], b[1]);
    }

    else if (x >= 201 && x <= 300){ 
        background(r[2], g[2], b[2]);
    } 
    else if (x >= 301 && x <= 400){ 
        background(r[3], g[3], b[3]);
    }  
    else {
        background(r[4], g[4], b[4]);
    }
}
int[]r={255249240233227};
int[]g={115138157173187};
int[]b={0,18,63,94120};
无效设置(){
大小(500500);
}
作废提款(){
int x=鼠标;

如果(x>=0&&x=101&&x=201&&x=301&&x如果不同值之间的步长为100,则可以将输入的x值除以100。整数除法将处理其余部分

if语句只是为了确保它保持在数组的边界内

int mouseX = ...;
int i = mouseX / 100;

if(i < r.length && i < g.length && i < b.length)
{
  background(r[i], g[i], b[i]);
}
int-mouseX=。。。;
int i=鼠标X/100;
if(i
谢谢您的回复。这是一个非常有用且干净的解决方案。我是编程新手,不知道整数除法会返回整数。我错误地认为整数除法会以某种方式返回浮点(在数学世界中,它会是浮点,但在这里它将返回值舍入为整数-整数)这是一个很好的未来技巧…再次感谢!不客气。很高兴我能提供帮助。仅供参考,整数除法并不总是适用于所有语言。它适用于Java,这就是为什么我在这里使用它,但不适用于Javascript,例如。在这些情况下,您通常需要
floor()
function或
Math.floor()
。每种语言都有自己的特点。
int mouseX = ...;
int i = mouseX / 100;

if(i < r.length && i < g.length && i < b.length)
{
  background(r[i], g[i], b[i]);
}