CS1335 Java and Processing
  • CS 1335 Computer Science 1
  • Getting Started
    • Processing IDE
    • Java vs Javascript
    • Review: Processing, Functions
    • HSB Color Mode
      • HSB Color Wheel
        • Example Code
      • HSB Color Palette Tool
    • Recursion
      • Recursion Call-Stack
      • Example Code
        • Example Code Feb 5 S20
        • Feb 12 Code
  • Project 1
    • Subjective Modeling of Emotions
    • Emotions represented using color, form, space
      • Kandinsky Color - Emotion
      • Emotional Intelligence
    • Project 1: PShapes
      • Example Code
      • Inspiration
    • PShape with Cutout - Inner Contour
    • VertexShape - Recursion
    • Project 1: Recursive Drawing
    • Project 1: Programmatic Variations in Color
      • Recursion with rotate, scale
      • Plan Region Size, Color
    • Map Function
    • Transforms for Mirroring
    • Project1-Steps
  • Grid Based Designs
    • Computational Design
      • Generative Design
    • Artist: Victor Vasarely
    • Grid Pattern Design
    • 1D - Array of PShapes for Grid Layout
      • Truchet Tiling
      • Example Code
    • PShapes in Grid Regions
    • Grid Region Logic
    • Pattern Preview - Transforms: Translate & Scale
  • Project 2
    • Project 2 - 2D Arrays for Gradient Logic
      • 2D Array Grid with Labels
    • Grid Patterns using 2D Array Indexes: i, j
      • Example Class Code
    • lerpColor( ) and map( ) Functions
    • Demo Lerp Colors
    • 2D Arrays with lerpColor
    • Create PShape 2D Array
    • Function: Populate2DArray( )
    • Function: DisplayShapeMatrix()
    • Transforms for Position, Rotation, Scale of ShapeMatrix Elements
    • Project 2 - Steps
    • Animation for ShapeMatrix
      • Animation w/Noise
  • Object Oriented Programming
    • Introduction to Objects
    • OOP vs Data-Flow
    • Button States
    • Buttons as Objects
      • Button Class
    • Create Object Instances
    • Button Types
    • Modeling Buttons: States and Events
    • OOP - Inheritance
    • OOP - Polymorphism
    • Child-Class: PImageButton
    • PShape - SVG Objects
    • Menu of Buttons
    • ButtonGroup - Final Version
    • Slider Controller
    • UML Class Diagram
  • Project 3
    • Project 3 - Logic, Steps
    • Example Code S20
      • Code Wed Apr 1
      • Code Wed Apr 8 v1
      • Code Wed Apr 8 v2
      • Code Mon Apr 13
      • Code Wed Apr 15
      • Code Mon Apr 20
      • Code Wed Apr 22
      • Code Mon Apr 27
      • Code Wed Apr 29
    • Project 3 - Class Definitions
      • Button
      • PImageButton
      • ButtonGroup
      • Pattern
        • PShapes - SVG, Vertex Shapes
        • Setting Colors For Patterns
        • Pattern - With Child-PShapes
      • Slider
      • Particles
  • Java Syntax
    • Java Syntax
      • Typed-Variables
      • Float - Integer Conversion Errors
      • Modulus
      • Functions
      • Object Reference Data Types
      • Arrays
        • Class Example Code
      • Switch-Case Statement
      • Ternary Operator
      • Class
      • Learning Science
    • UML Class Diagram
    • Glossary
  • Resources and References
    • Resources
    • Random Inspiration
      • Ulm School
      • Heart-Mind, Mind, Body
      • Statistical Uncertainty
Powered by GitBook
On this page

Was this helpful?

  1. Project 2
  2. Grid Patterns using 2D Array Indexes: i, j

Example Class Code

PreviousGrid Patterns using 2D Array Indexes: i, jNextlerpColor( ) and map( ) Functions

Last updated 5 years ago

Was this helpful?

Notice that the circles are using fractionl logic for color: k= min( i, j) and this creates concentric color patterns. The Squares are using logic: k=i+j, which gives diagonal color gradient pattern.

void setup(){
  size( 600, 600);
  colorMode(HSB, 360, 100, 100);
  background(0);
  color c1 = color( 270, 100, 50);//dark purple
  color c2 = color( 180, 100, 100); //cyan
  color c4 = color( 0,100,100  ); //red -some other color
  int rows = 20;
  int cols = 20;
  int size = width/cols;
  //data-type, variable name, initialize: objects: use 'new'
  int[][] intMatrix = new int[rows][cols];

  int xPos=0;  //for creating grid layout
  int yPos=0;  //for creating grid layout

  //nested for-loops -here we are populating and displaying at the same time
  for( int i=0; i< rows; i++){
    for( int j=0; j< cols; j++){
    int k = i + j;  ///play with this logic to determine k
    int l = min( i, j);
    float fractionk = map( k, 0,rows-1 + cols -1, 0.0, 1.0);  //want full range for lerpColor
    float fractionl = map( l, 0, rows-1, 0.0, 1.0); //want full range of colors
    color c3 = lerpColor( c1, c2, fractionk);
    color c5 = lerpColor( c4, c1, fractionl);

    int value = 0;
    if( k % 2 == 0){  //k is even number
     value = k;
          fill( c3); //color set by k logic
          rect( xPos,yPos,size * .9, size * .9);

        fill(0);//text color is set by fill
        textAlign( CENTER, CENTER); ///align horiz, vert to center
        text( k, xPos + (size/2), yPos +(size/2));
    } //end if
    else{
     value = l;
       fill( c5); //color set by l logic
       ellipse( xPos+(size/2),yPos+(size/2),size * .9, size * .9);
       fill(360);//text color is set by fill
        textAlign( CENTER, CENTER); ///align horiz, vert to center
        text( l, xPos + (size/2), yPos +(size/2));
    } //end else

    intMatrix[i][j] = value;


    xPos += size;
    } //end inner for-lop 
    xPos = 0; //reset at end of each row
    yPos += size; //reset for moving down to next row
  }//end outer for-loop


} //end setup

Variations of Grid Color Patterns

Using: int l = max( i, j)

Using: int l = min( i, j)