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