Example Code March 11
//MARCH 11, 2020
//setup is called one time to initialize config and variables
void setup(){
size( 600, 600);
colorMode(HSB, 360, 100, 100);
background(0); //grayscale white?
//we will display in a grid
int rows; //declare variable - default value of 0
rows = 10; //initialize the variable
int cols = 10;
float cellSize = width/cols; //red flag - integer division - truncation
///Initialize the array
PShape[][] myShapes; ///declare the array - default value: null
myShapes = new PShape[ rows][cols ]; //initialize array
populateShapeMatrix1( myShapes, rows, cols, cellSize); //call the function
//shape( myShapes[0], 0, 0); //display one shape
displayShapeMatrix( myShapes, rows, cols, cellSize);
}
//layout in grid
void displayShapeMatrix( PShape[][] shapes, int rows, int cols, float cellSize ){
int xPos = 0; //where to draw each shape
int yPos = 0;
for( int i=0; i< rows; i++){
for( int j=0; j< cols; j++){
shape( shapes[i][j], xPos, yPos); //draw one shape
xPos += cellSize;
} //end inner for-loop - cols
xPos=0;
yPos += cellSize;
}//end outer for-loop - rows
}//end displayShapes
//logic for the pattern in the data
void populateShapeMatrix1( PShape[][] shapes, int rows, int cols , float cellSize ){
for( int i=0; i< rows; i++){
for( int j=0; j< cols; j++){
int k = i + j; //diagonal pattern
color c1 = color(290, 100, 100);//magenta
color c2 = color(240, 100, 100);//blue
color c3 = color(0); //black
color c4 = color(100); //dark gray
float fraction = map( k, 0, rows+cols-2, 0.0, 1.0); //full ROYGBIV hue
color fgroundColor = lerpColor( c1, c2, fraction);
color bgroundColor = lerpColor( c3, c4, fraction);
PShape s = vertexShape1(cellSize*fraction, fgroundColor, bgroundColor); //call custom shape function
shapes[i][j] = s; //set one element of the array to the current PShape
}//end inner for-loop
} //end outer for-loop
} //end function
//Placeholder function - you will replace with your own custom function
PShape vertexShape1( float len, color c1, color c2){
PShape g = createShape(GROUP); //can have children PShapes
PShape s0 = createShape( RECT, 0,0, len, len); //background
s0.setFill( c2); //background color
PShape s = createShape( ELLIPSE, 0,0, len *.6, len *.6);
s.setFill( c1);
//add children to the Group
g.addChild( s0);
g.addChild(s);
return g;
}
Last updated