Освещённость цвета
задача сделать класс освещения цвета.
я решил что если 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;
}