/* // ImageMapper - presentation version // Eric Decker - 2007/08 // New Media Design & Imaging - R.I.T. // Virtual Entertainment / Jason Arena */ PImage img; PImage img1; PImage img2; PImage img3; PImage img4; int thumbSize; int padding; int imgDown; boolean imagePicked; int objectCount; boolean trackMouse; boolean paused; int randRange; PFont fontA; void setup() { size(600,600); background(0); smooth(); imagePicked = false; //images: coins.jpg, flower2.jpg, adirondack2.jpg, fire.jpg img1 = loadImage("sourceImages/coins.jpg"); img2 = loadImage("sourceImages/flower2.jpg"); img3 = loadImage("sourceImages/adirondack2.jpg"); img4 = loadImage("sourceImages/fire.jpg"); //make thumbs: thumbSize = 200; padding = (width-(thumbSize*2))/3; imgDown = 0; stroke(255); noFill(); image(img1,padding,padding,thumbSize,thumbSize); image(img2,padding*2+thumbSize,padding,thumbSize,thumbSize); image(img3,padding,padding*2+thumbSize,thumbSize,thumbSize); image(img4,padding*2+thumbSize,padding*2+thumbSize,thumbSize,thumbSize); objectCount = 0; trackMouse = false; paused = false; fontA = loadFont("CourierNew36.vlw"); } void draw() { if (imagePicked == true) { //draw: if (paused == false) { makeImage(); } //show info: showInfo(); }else{ updateRollovers(); } if (keyPressed) { //increase random range: if (keyCode == UP) { randRange+=5; println("mouse follow offset set to: "+randRange); } //decrease random range: if (keyCode == DOWN && randRange>0) { randRange-=5; println("mouse follow offset set to: "+randRange); } } } void keyReleased() { // pause if (key == 'p' && imagePicked == true) { paused = !paused; } } void showInfo() { noStroke(); fill(0); rect(0,height-14,width,14); fill(235); textFont(fontA, 12); text("lines & circles drawn: "+objectCount,7,height-4); if (paused == true) { text("*** PAUSED ***",width-110,height-4); } } void makeImage() { int x; int y; if (trackMouse == false) { x = round(random(0,width)); y = round(random(0,height)); }else{ x = mouseX + round(random(randRange*-1,randRange)); y = mouseY + round(random(randRange*-1,randRange)); } color pix = img.get(x,y); stroke(pix); int count = 0; //loop thought image pixels: for (int w=0; w padding && mouseX < padding+thumbSize) { //could be either img1 or img3: if (mouseY > padding && mouseY < padding+thumbSize) { //thumb 1: return 1; }else if(mouseY > padding*2+thumbSize && mouseY < height-padding) { //thumb 3: return 3; }else{ //nadda return 0; } }else if(mouseX > padding*2+thumbSize && mouseX padding && mouseY < padding+thumbSize) { //thumb 2: return 2; }else if(mouseY > padding*2+thumbSize && mouseY < height-padding) { //image 4: return 4; }else{ return 0; } }else{ return 0; } } void updateRollovers() { noFill(); stroke(0); rect(padding,padding,thumbSize,thumbSize); rect(padding*2+thumbSize,padding,thumbSize,thumbSize); rect(padding,padding*2+thumbSize,thumbSize,thumbSize); rect(padding*2+thumbSize,padding*2+thumbSize,thumbSize,thumbSize); stroke(255); int selected = getThumb(); if (selected == 1) { rect(padding,padding,thumbSize,thumbSize); }else if (selected == 2) { rect(padding*2+thumbSize,padding,thumbSize,thumbSize); }else if (selected == 3) { rect(padding,padding*2+thumbSize,thumbSize,thumbSize); }else if (selected == 4) { rect(padding*2+thumbSize,padding*2+thumbSize,thumbSize,thumbSize); } } /* // // www.eric-decker.com // // www.jasonarena.com // */ //