光の表現

光は加算で表現できる。
よってそれぞれのピクセルのRGBに新たなRGBを足してやる。
255を超えたら255に設定。
これで光っぽくなる。

for(int j = 0;j < width*height;j++){
if(Point2D.distance(mx,my,(int)(j%width),(int)(j/width)) <= radius){
int dist = (int)Point2D.distance(mx,my,(int)(j%width),(int)(j/width));
int red = (int)> 16) & 0xff">*1;
if(coln == 0)

ary[j] = 255 << 24 | add(255*(radius-dist)/radius,red) << 16 | add(255*(radius-dist)/radius,green) << 8 |add(255,blue);
if(coln == 1)
ary[j] = 255 << 24 | add(255*(radius-dist)/radius,red) << 16 | add(255,green) << 8 |add(255*(radius-dist),blue);

if(coln == 2)
ary[j] = 255 << 24 | add(255,red) << 16 | add(255*(radius-dist)/radius,green) << 8 |add(255*(radius-dist)/radius,blue);



public int add(int a,int b){
int c = a + b;
if(c >= 255)c = 255;
return c;
}

*1:ary[j] >> 16) & 0xff);//0~255 int green = (int)((ary[j] >> 8) & 0xff);//0~255 int blue = (int)((ary[j] >> 16) & 0xff);//0~255 //System.out.println("red:"+ (int)((ary[j] >> 16) & 0xff