class DynamicField/*****************************************************************/ { float value; PGraphics dField; int scaleFactor; /************constructor************************************/ DynamicField(int gridColumns, int gridLines ) { scaleFactor = 1; dField = createGraphics(gridColumns*scaleFactor,gridLines*scaleFactor,JAVA2D); dField.beginDraw(); dField.endDraw(); } /********Methods*********************************************************************** void increaseValue(int x, int y) void diffuse(float diffusion) void decay(float decay) PImage getImage() getGridLines() getGridColumns() float getValue(x,y) float getBrightness(int x,int y) void printlnValues() */ void increaseValue(int x, int y) { dField.beginDraw(); dField.noStroke(); dField.fill(0,0,120, 4); dField.rectMode(CENTER); dField.ellipse(x*scaleFactor+scaleFactor/2,y*scaleFactor+scaleFactor/2,scaleFactor*2,scaleFactor*2); dField.endDraw(); } void diffuse(float diffusion) { dField.beginDraw(); dField.filter(BLUR, diffusion); dField.endDraw(); } void decay(float decay) { dField.beginDraw(); dField.noStroke(); dField.fill(0,decay); dField.rect(0,0,getGridColumns()*scaleFactor,getGridLines()*scaleFactor); dField.endDraw(); } PImage getImage() { return dField; } int getGridColumns() { return dField.width; } int getGridLines() { return dField.height; } float getValue(int x,int y) { color colour = dField.get(x*scaleFactor,y*scaleFactor); float valueAlpha = alpha(colour); float valueNumber = valueAlpha/25.5; return valueNumber; } float getBrightness(int x,int y) { color colour = dField.get(x,y); float valueBright = brightness(colour); return valueBright; } void printlnValues() { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(5); nf.setMinimumFractionDigits(5); for(int i=0; i