week 2 ++ pixel flexing

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); 
		}			
	}
}