mirror of
https://github.com/processing/processing4.git
synced 2026-01-29 19:31:16 +01:00
44 lines
1.1 KiB
Plaintext
44 lines
1.1 KiB
Plaintext
/**
|
|
* Array 2D.
|
|
*
|
|
* Demonstrates the syntax for creating a two-dimensional (2D) array.
|
|
* Values in a 2D array are accessed through two index values.
|
|
* 2D arrays are useful for storing images. In this example, each dot
|
|
* is colored in relation to its distance from the center of the image.
|
|
*/
|
|
|
|
float[][] distances;
|
|
float maxDistance;
|
|
int spacer;
|
|
|
|
void setup() {
|
|
size(640, 360);
|
|
maxDistance = dist(width/2, height/2, width, height);
|
|
distances = new float[width][height];
|
|
for (int y = 0; y < height; y++) {
|
|
for (int x = 0; x < width; x++) {
|
|
float distance = dist(width/2, height/2, x, y);
|
|
distances[x][y] = distance/maxDistance * 255;
|
|
}
|
|
}
|
|
spacer = 10;
|
|
noLoop(); // Run once and stop
|
|
}
|
|
|
|
void draw() {
|
|
background(0);
|
|
// This embedded loop skips over values in the arrays based on
|
|
// the spacer variable, so there are more values in the array
|
|
// than are drawn here. Change the value of the spacer variable
|
|
// to change the density of the points
|
|
for (int y = 0; y < height; y += spacer) {
|
|
for (int x = 0; x < width; x += spacer) {
|
|
stroke(distances[x][y]);
|
|
point(x + spacer/2, y + spacer/2);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|