IFD:All Hail The Pixels/ProcessingSketches: Difference between revisions

From Medien Wiki
(Added P04 and P05 example sketches)
Line 284: Line 284:
       }   
       }   
     }
     }
}
</source>
<br /><br />
== 21.11.2014 Processing sketches ==
=== P06 Strings and Chars ===
<source lan="java">
/*
P06 Strings and Chars
This example illustrates how to work with Strings (a collection of characters)
and how to display text on the screen. Also it shows how to access single characters
of a string by using the charAt() function.
*/
// Initialize a new string variable and assign the phrase "HELLO" to it
String word = "HELLO";
// Variable to count the current character position
int index = 0;
void setup() {
  size(1000, 600);
  // Set the size for any text that is drawn to 36px
  textSize(36);
  // Reduce the frame rate of the draw() loop to 2 frames per second
  frameRate(2);
}
void draw() {
  background(0);
 
  // Make sure that the index never exceeds the bounds of the word
  if (index >= word.length() ) {
    index = 0;
  }
 
  // Display the character at the current position (index) at the center of the screen
  text(word.charAt(index), width*0.5, height*0.5);
 
  // Increment the index by 1
  index++;
}
</source>
<br /><br />
=== P07 Array Layout ===
<source lan="java">
/*
P07 Array Layout
This sketch shows how Arrays can be used to structure a set of numbers.
Also it uses a for-loop to iterate the Array and to access each individual
number of it to draw an ellipse with the respective diameter.
*/
// Initialize an Array to specify the individual diameters of ellipses in the grid.
// Note that the way of writing the numbers in a 3x3 grid is only for better readibility.
// One could also write {9,2,2,2,9,2,2,2,9}
int[] diameters = {  9,2,2,
                    2,9,2,
                    2,2,9 };
// Variable to define the spacing between the elements in the grid
int spacing = 50;
void setup(){
  size(1000,600);
  noFill();
 
  // Print the total numbers of elements in the diameters array to the console
  println(diameters.length);
 
}
void draw(){
  background(255);
 
  // Align the grid structure to the center
  translate(width * 0.5 - (spacing * 1.5), height * 0.5 - (spacing * 1.5));
 
  // Loop over the diameters array
  for(int i=0; i < diameters.length; i++){
   
    // Calculate the modulo of the division of the counter (i) by the total
    // number of colums (3) to get the current column:
    int x = (i % 3) * spacing;
   
    // Calculate the actual row by dividing the counter by the total number
    // of columns (3) and rounding it down with floor()
    int y = floor(i / 3) * spacing;
   
    // Draws the individual ellipse with the respective diameter
    // specified in the diameters array.
    ellipse(x, y, diameters[i], diameters[i]);
  }
}
</source>
<br /><br />
=== P08 Grid By Image ===
<source lan="java">
/*
P08 Grid By Image
Example of how to load an image file into processing and how to access each
pixel of the image. The color information of the pixels of the loaded image
are used to modify the grid layout.
NOTICE: Make sure the image "layout.png" is placed in the "data" folder of
this sketch!
*/
// Initialize a variable to store an image
PImage img;
// Define a variable to specify the spacing of the elements
int spacing = 10;
void setup() {
  size(1000, 600);
  // Load the actual image file from the data folder and
  // assign it to the img variable
  img = loadImage("layout.png");
 
  // How many pixels did we load?
  println(img.pixels.length);
}
void draw() {
 
  background(0);
 
  // Only show the actual image if a keyboard key is pressed
  if(keyPressed){
    image(img, 0, 0);
  }
  // Two nested for-loops to draw ellipses all over the window
  // with a certain spacing
  for (int x=0; x < width; x+= spacing) {
    for (int y=0; y < height; y+= spacing) {
     
      // Extract the color of the x and y pixel position of the image 
      color c = img.get(x, y);
     
      // Only actually draw an ellipse when the current brightness of the
      // extracted color is very dark (brightness == 0)
      if (brightness(c) == 0 ) {
        ellipse(x, y, 5, 5);
      }
    }
  }
}
}
</source>
</source>
<br /><br />
<br /><br />