class Play { int pyX, pyY, psX, psY; int pyS, psS; color pyColor, psColor; color pyHighlight, psHighlight; boolean pyOver = false; boolean psOver = false; boolean sOver = false; Play (int x1, int y1, int x2, int y2, int pSize) { pyX = x1; pyY = y1; psX = x2; psY = y2; pyColor = 100; pyHighlight = 75; psColor = 100; psHighlight = 75; pyS = pSize; psS = pSize; } void draw() { if(psOver) { fill(0,0,psHighlight); } else { fill(0,0,psColor); } // draws pause button stroke(0,0,90); rect(psX,psY,psS,psS); fill(0,0,90); rect(psX+6,psY+6,6,18); rect(psX+18,psY+6,6,18); // draws play button if(pyOver) { fill(0,0,pyHighlight); } else { fill(0,0,pyColor); } rect(pyX,pyY,pyS,pyS); fill(0,0,90); triangle(pyX+8,pyY+6,pyX+8,pyY+24,pyX+24,pyY+15); } void update() { if (pyOver()) { pyOver = true; psOver = false; } else if (psOver()) { psOver = true; pyOver = false; } else { pyOver = psOver = false; } } // mousePressed boolean pyOver() { if (mouseX >= pyX && mouseX <= pyX+pyS && mouseY >= pyY && mouseY <= pyY+pyS) { // saveFrame("background.html"); if (mousePressed){ //println("TIF made"); play = true; // PLAY FUNCTION println("mouse pressed"); updatePixels(); int ex = 2; // extent of vectorial field sampling int sPx = 105; // screen position x int sPy = 105; // screen position y int sat = 0; // color saturation at position int sSize = 390; // screen length int vX = sPx; // vector position x int vY = sPy; // vector position y int vXm = 0; // vector magnitude int vYm = 0; // vector magnitude int exLineS; // line step float exLine1y, exLine2y, exLine3y, exLine4y, exLine1x, exLine2x, exLine3x, exLine4x; // line difference values in lines to be added in x and y directions for(int i=0; i < pow(sSize,2); i=i+1){ // screen size // for(int i=0; i<1; i=i+1){ // screen size // VECTOR CALCULATION // sPsat - color saturation at point sat = int(saturation(pixels[int(vY*width+vX)])); sS[i] = sat; // vXm - x vector magnitude // exLineS = -2; exLine1y = (((brightness(pixels[int((vY+exLineS)*width+vX+2)]) - brightness(pixels[int((vY+exLineS)*width+vX-2)])) + (brightness(pixels[int((vY+exLineS)*width+vX+1)]) - brightness(pixels[int((vY+exLineS)*width+vX-1)]))))/2; exLineS = -1; exLine2y = (((brightness(pixels[int((vY+exLineS)*width+vX+2)]) - brightness(pixels[int((vY+exLineS)*width+vX-2)])) + (brightness(pixels[int((vY+exLineS)*width+vX+1)]) - brightness(pixels[int((vY+exLineS)*width+vX-1)]))))/2; exLineS = +1; exLine3y = (((brightness(pixels[int((vY+exLineS)*width+vX+2)]) - brightness(pixels[int((vY+exLineS)*width+vX-2)])) + (brightness(pixels[int((vY+exLineS)*width+vX+1)]) - brightness(pixels[int((vY+exLineS)*width+vX-1)]))))/2; exLineS = +2; exLine4y = (((brightness(pixels[int((vY+exLineS)*width+vX+2)]) - brightness(pixels[int((vY+exLineS)*width+vX-2)])) + (brightness(pixels[int((vY+exLineS)*width+vX+1)]) - brightness(pixels[int((vY+exLineS)*width+vX-1)]))))/2; exLineS = -2; exLine1x = (((brightness(pixels[int((vY+2)*width+vX+exLineS)]) - brightness(pixels[int((vY-2)*width+vX+exLineS)])) + (brightness(pixels[int((vY+1)*width+vX+exLineS)]) - brightness(pixels[int((vY-1)*width+vX+exLineS)]))))/2; exLineS = -1; exLine2x = (((brightness(pixels[int((vY+2)*width+vX+exLineS)]) - brightness(pixels[int((vY-2)*width+vX+exLineS)])) + (brightness(pixels[int((vY+1)*width+vX+exLineS)]) - brightness(pixels[int((vY-1)*width+vX+exLineS)]))))/2; exLineS = +1; exLine3x = (((brightness(pixels[int((vY+2)*width+vX+exLineS)]) - brightness(pixels[int((vY-2)*width+vX+exLineS)])) + (brightness(pixels[int((vY+1)*width+vX+exLineS)]) - brightness(pixels[int((vY-1)*width+vX+exLineS)]))))/2; exLineS = +2; exLine4x = (((brightness(pixels[int((vY+2)*width+vX+exLineS)]) - brightness(pixels[int((vY-2)*width+vX+exLineS)])) + (brightness(pixels[int((vY+1)*width+vX+exLineS)]) - brightness(pixels[int((vY-1)*width+vX+exLineS)]))))/2; /* exLine1x = 0; exLine2x = 0; exLine3x = 1; exLine4x = 1; exLine1y = 0; exLine2y = 0; exLine3y = 1; exLine4y = 1; */ if (vY*width+vX == 310*width+310) { println(exLine1y + " " + exLine2y + " " + exLine3y + " " + exLine4y); println(exLine1x + " " + exLine2x + " " + exLine3x + " " + exLine4x); } if (exLine1y + exLine2y > exLine3y + exLine4y && exLine1x + exLine2x > exLine3x + exLine4x) { vXm = int(exLine1y + exLine2y + exLine3y + exLine4y)/2; } else if (exLine1y + exLine2y < exLine3y + exLine4y && exLine1x + exLine2x < exLine3x + exLine4x) { vXm = -1*int(exLine1y + exLine2y + exLine3y + exLine4y)/2; } else if (exLine1y + exLine2y > exLine3y + exLine4y && exLine1x + exLine2x < exLine3x + exLine4x){ vXm = -1*int(exLine1y + exLine2y + exLine3y + exLine4y)/2; } else if (exLine1y + exLine2y < exLine3y + exLine4y && exLine1x + exLine2x > exLine3x + exLine4x){ vXm = int(exLine1y + exLine2y + exLine3y + exLine4y)/2; } else { vXm = 0; } // exLine1+exLine2+ // *(1-(sat/100))); // println(exLine1 + ", " + exLine2 + ", " + exLine3 + ", " + exLine4 + ", vXm = " + vXm); sVx[i] = int(vXm); // println(sVx); // // end of xVm // vYm - y vector magnitude // exLineS = -2; exLine1y = int(((brightness(pixels[int((vY+2)*width+vX+exLineS)]) - brightness(pixels[int((vY-2)*width+vX+exLineS)])) + (brightness(pixels[int((vY+1)*width+vX+exLineS)]) - brightness(pixels[int((vY-1)*width+vX+exLineS)]))))/2; exLineS = -1; exLine2y = int(((brightness(pixels[int((vY+2)*width+vX+exLineS)]) - brightness(pixels[int((vY-2)*width+vX+exLineS)])) + (brightness(pixels[int((vY+1)*width+vX+exLineS)]) - brightness(pixels[int((vY-1)*width+vX+exLineS)]))))/2; exLineS = +1; exLine3y = int(((brightness(pixels[int((vY+2)*width+vX+exLineS)]) - brightness(pixels[int((vY-2)*width+vX+exLineS)])) + (brightness(pixels[int((vY+1)*width+vX+exLineS)]) - brightness(pixels[int((vY-1)*width+vX+exLineS)]))))/2; exLineS = +2; exLine4y = int(((brightness(pixels[int((vY+2)*width+vX+exLineS)]) - brightness(pixels[int((vY-2)*width+vX+exLineS)])) + (brightness(pixels[int((vY+1)*width+vX+exLineS)]) - brightness(pixels[int((vY-1)*width+vX+exLineS)]))))/2; vYm = abs(int(exLine1y+exLine2y+exLine3y+exLine4y)/4); // *(1-(sat/100))); // println(exLine1 + " " + exLine2 + " " + exLine3 + " " + exLine4 + " vYm = " + vYm); sVy[i] = int(vYm); // println(sVy); // // end of xYm // END OF VECTOR CALCULATION // println("i = " + i + ", vX = " + vX + ", vY = " + vY); // SCREEN POSITION COUNT if(vX < sSize + 105 - 1) { vX = vX + 1; } else { // println("else break"); // println("else break"); // println("else break"); vX = 105; vY = vY + 1; } } // end of screen // println("break"); vX = 105; // screen position x regen vY = 105; // screen position y regen } // end of mouse pressed return true; } else { return false; } } boolean psOver() { if (mouseX >= psX && mouseX <= psX+psS && mouseY >= psY && mouseY <= psY+psS) { if (mousePressed){ play = false; // PAUSE FUNCTIONS PImage s; s = loadImage("background.html"); image(s,0,0); } return true; } else { return false; } } }