Освещённость цвета

задача сделать класс освещения цвета.

я решил что если rgb = 255*3 = 765 это будет максимальной освещённостью, а 0 - минимальной.

тогда первая половина этого значения будет освещена меньше и её надо осветлять, а вторую половину затенять, что и реализовано условием.

дальше всё просто: добавляю освещённость каждой составляющей и передаю в переменную.

вопрос в том что изначально я хотел сделать класс статическим, но мне сказали что color не статичен и использовать в статическом классе нельзя.

можно как-то это обойти?

файл lighting:

class Lighting{
  private color Color;
  Lighting(color c, int intensity){
    if((c>>16&0xFF)+(c>>8&0xFF)+(c&0xFF) > 128*3) intensity *= -1;
    
      int r = (c>>16&0xFF) + intensity;
      int g = (c>>8&0xFF)  + intensity;
      int b = (c&0xFF)     + intensity;
      
      r = constrain(r, 0, 255);
      g = constrain(g, 0, 255);
      b = constrain(b, 0, 255);
      
      Color = color(r,g,b);
  }
}

файл main:

color colorCell;
color colorLine;

void setup(){
  size(640,360);
  colorCell = color(0,155,0);
  colorLine = new Lighting(colorCell, 5).Color;
}

Ответы (0 шт):