Source code Source code
BImage a;

boolean onetime = true;

int[][] aPixels;

float sval = 1.0;

float nmx, nmy;

int res = 1;

void setup()

{

size(200, 200);

noFill();

stroke(255);

aPixels = new int[width][height];

a = loadImage("smalldiatom.jpg");

image(a, 50, 50);

for(int i=0; i<height; i++) {

for(int j=0; j<width; j++) {

aPixels[j][i] = a.pixels[i*width+j];

}

}

}

void loop()

{

background(21);


if (abs(mouseX - nmx) > 1.0) {

nmx = nmx + (mouseX-nmx)/40;

}

if (abs(mouseY - nmy) > 1.0) {

nmy += (mouseY-nmy)/20;

}


if(mousePressed) {

sval += 0.1;

} else {

sval -= 0.2;

}

if(sval > 2.5) { sval = 2.5; }

if(sval < 1.0) { sval = 1.1; }


translate(width/2+nmx*sval-100, height/2+nmy*sval-50, -50);

scale(sval);

rotateZ(PI/0.8-sval+0.5);

rotateX(PI/sval/5.8-0.25);

rotateY(sval/0.5-0.25);


translate(-width/3, -height/2, 0);


float rr, gg, bb, tt;

for(int i=0; i<height; i+=res) {

for(int j=0; j<width; j+=res) {

rr = red(aPixels[j][i]);

gg = green(aPixels[j][i]);

bb = blue(aPixels[j][i]);

tt = rr+gg+bb;

stroke(rr, gg, gg);

line(i, j, tt/10-20, i, j, tt/10 );

}

}

}

void keyPressed() {

if(key == '1') {

res = 1;

} else if (key == '2') {

res = 2;

} else if (key == '3') {

res = 3;

} else if (key == '4') {

res = 4;

} else if (key == '5') {

res = 5;

}

}

BImage a;

boolean onetime = true;

int[][] aPixels;

float sval = 1.0;

float nmx, nmy;

int res = 1;

void setup()

{

size(200, 200);

noFill();

stroke(255);

aPixels = new int[width][height];

a = loadImage("smalldiatom.jpg");

image(a, 50, 50);

for(int i=0; i<height; i++) {

for(int j=0; j<width; j++) {

aPixels[j][i] = a.pixels[i*width+j];

}

}

}

void loop()

{

background(21);


if (abs(mouseX - nmx) > 1.0) {

nmx = nmx + (mouseX-nmx)/40;

}

if (abs(mouseY - nmy) > 1.0) {

nmy += (mouseY-nmy)/20;

}


if(mousePressed) {

sval += 0.1;

} else {

sval -= 0.2;

}

if(sval > 2.5) { sval = 2.5; }

if(sval < 1.0) { sval = 1.1; }


translate(width/2+nmx*sval-100, height/2+nmy*sval-50, -50);

scale(sval);

rotateZ(PI/0.8-sval+0.5);

rotateX(PI/sval/18-5.125);

rotateY(sval/15-0.25);


translate(-width/3, -height/2, 0);


float rr, gg, bb, tt;

for(int i=0; i<height; i+=res) {

for(int j=0; j<width; j+=res) {

rr = red(aPixels[j][i]);

gg = green(aPixels[j][i]);

bb = blue(aPixels[j][i]);

tt = rr+gg+bb;

stroke(rr, gg, gg);

line(i, j, tt/10-20, i, j, tt/10 );

}

}

}

void keyPressed() {

if(key == '1') {

res = 1;

} else if (key == '2') {

res = 2;

} else if (key == '3') {

res = 3;

} else if (key == '4') {

res = 4;

} else if (key == '5') {

res = 5;

}

}

Built with Processing