int[] sintab; void setup() { size(320,240); sintab = new int[256]; for (int i=0; i<256; i++) sintab[i] = (int)(sin(i/256.0*PI*2)*127+127)*2; } void draw () { loadPixels(); int m = (int)millis() / 20; int dy = sintab[(m/3)&0xFF]*256; int dx = sintab[(m/2)&0xFF]*256; int sv = sintab[m&0xFF]; int cv = sintab[(m+64)&0xFF]; for (int y=0; y<240; y++) { int ddx = dx; int ddy = dy; for (int x=0; x<320; x++) { pixels[x+y*320]=color(0,0,((ddx>>8)&0xFF)^((ddy>>8)&0xFF)); ddx += cv; ddy += sv; } dx -= sv; dy += cv; } updatePixels(); }