|
1d access ( code) : fading sines
|
for (int i = 0; i < imageW * imageH; i++){
imagePixels[i] = i * cos(i / (imageW * imageH / 1))/4 + 4 * sin(i / 1000);
}
|
|
2d static ( code) : waves of noise, or see code for cooler, dynamic version
|
int r_max = 400;
for (int r = 0; r < r_max; r++){
for (int i = 0; i < imageW; i++){
int ran = imageH * ofRandomuf();
float ranH = ofRandomuf();
for (int j = ran; j < min(int(ran*ranH) + imageH, imageH); j++){
float sinc = sin(2*pi*(r*ranH + .4*ran + 1*(i - j))/(.2*r_max));
if(imagePixels[j * imageW + i] > 1 && imagePixels[j * imageW + i] < 254){
imagePixels[j * imageW + i] -= .001 * sinc;
}
}
}
}
|
|
2d dynamic ( code) : multiplying concentric circles
|
count++;
if(count > 255){
count = 1;
}
for (int i = 0; i < imageW; i++){
for (int j = 0; j < imageH; j++){
int cenX = i-imageW/2;
int cenY = j-imageH/2;
float fade = (1+sin(2*pi*count/255))/2;
float pattern = (1+cos(2*pi*(cenX*cenX + cenY*cenY)/(2*255*255/(1 + 100*fade*fade))))/2;
imagePixels[j * imageW + i] = 255 * fade * pattern;
}
}
|
|
drawing tool ( code) : pulsing brush with some fx; moving, deterioriating canvas
|
count++;
if(count > count_max){
count = 0;
}
for (int i = 0; i < imageW; i++){
for (int j = 0; j < imageH; j++){
float trans = sin(5*pi*(count)/count_max);
float tranc = cos(5*pi*(count)/count_max);
float diffx = (mouseX - i);
float diffy = (mouseY - j);
float dist = sqrt(diffx*diffx + diffy*diffy);
float ran = ofRandomuf();
float ran2 = ofRandomuf();
float dist_var = 40*(2.5 - .5*tranc - ran);
if (dist < dist_var){
imagePixels[j * imageW + i] = MIN(255, imagePixels[(j + int(fabs(30*trans))) * imageW + i + int(fabs(30*trans))] + 1*(dist_var - dist));
} else {
imagePixels[j * imageW + i] = MAX(0,imagePixels[(j + int(fabs(1.5*trans + 9*ran))) * imageW + i + int(fabs(1.5*tranc - 3*ran - 1*ran2))] - .3);
}
}
}
|