Example - March9
//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
populateShapeMatrix( myShapes, rows, cols, cellSize); //call the function
//shape( myShapes[0], 0, 0); //display one shape
displayShapeMatrix( myShapes, rows, cols, cellSize);
}
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
void populateShapeMatrix( 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;
float hue = map( k, 0, rows+cols-2, 200, 300); //full ROYGBIV hue
color curColor = color( hue, 100, 100); //
PShape s = createShape( RECT, 0,0, cellSize *.9, cellSize *.9);
s.setFill( curColor);
shapes[i][j] = s; //set one element of the array to the current PShape
}//end inner for-loop
} //end outer for-loop
} //end function
Last updated