tema i
practica i: george nees
el objetivo de este trabajo era imitar la obra de george nees 'k-38 bandada' (1968) utilizando ‘processing’.
'k-38 bandada', george nees (1968)
Lo primero es crear las funciones setup() y draw().
Hay una serie de convenciones sintácticas:
- Tanto setup, como draw, van precedidas del comando 'void' –void setup y void draw
- Tanto setup, como draw, van seguidas de paréntesis de apertura y cierre –void setup() y void draw()
- Comandos, variables y estructuras van entre corchetes de apertura y cierre –void setup() {comandos, variables, etc.} y void draw() {comandos, variables, etc.}

// 1
//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);
}

//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
}
// 2
//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);
}

//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
// Dibujamos un 'rectángulo'
// con la esquina superior izquierda en el centro de la ventana
// y de 50 px tanto de ancho como de alto
rect( 200, 300, 50, 50);
}
// 3
//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);

// Queremos el rectángulo sin borde (trazo)
noStroke();

// Con un relleno negro algo transparente
fill(0, 200);

// y dibujarlo, NO desde la esquina superior izquierda,
// si no desde el CENTRO
rectMode(CENTER);
}
//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
// Dibujamos un 'rectángulo'
// CON SU CENTRO en el centro de la ventana
// y de 50 px tanto de ancho como de alto
rect( 200, 300, 50, 50);
}
// 4
//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);

// Queremos el rectángulo sin borde (trazo)
noStroke();

// Con un relleno negro algo transparente
fill(0, 200);

// y dibujarlo, NO desde la esquina superior izquierda,
// si no desde el CENTRO
rectMode(CENTER);
}
//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
// Dibujamos un 'rectángulo'
// CON SU CENTRO en el centro de la ventana
// y de 50 px tanto de ancho como de alto
rect( random(width), random(height), 50, 50);
}
// 5
//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);

// Queremos el rectángulo sin borde (trazo)
noStroke();

// Con un relleno negro algo transparente
fill(0, 200);

// y dibujarlo, NO desde la esquina superior izquierda,
// si no desde el CENTRO
rectMode(CENTER);
}
//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
// Dibujamos un 'rectángulo'
// CON SU CENTRO en el centro de la ventana
// y de 50 px tanto de ancho como de alto
rect(random(width), random(height), random(50), random(50));
}
// 6
//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);

// Queremos el rectángulo sin borde (trazo)
noStroke();

// Con un relleno negro algo transparente
fill(0, 200);

// y dibujarlo, NO desde la esquina superior izquierda,
// si no desde el CENTRO
rectMode(CENTER);
}
//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
float AnchoAltoRect = random(50);
rect(random(width), random(height), AnchoAltoRect, AnchoAltoRect);
}
// 7

// Declaramos la variable entera (int) numRep y le asignamos el valor 0

int numRep = 0;

//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);

// Queremos el rectángulo sin borde (trazo)
noStroke();

// Con un relleno negro algo transparente
fill(0, 200);

// y dibujarlo, NO desde la esquina superior izquierda,
// si no desde el CENTRO
rectMode(CENTER);
}
//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
// Comprobamos si numRep es menor de 60 con if
if (numRep < 60) {

// Si numRep es menor de 60 se ejecuta lo que sigue
float AnchoAltoRect = random(50);
rect(random(width), random(height), AnchoAltoRect, AnchoAltoRect);

//Para evitar que numRep sea siempre 0 debemos sumar 1 a su valor
numRep++;
}
}
// 8

// Declaramos la variable entera (int) numRep y le asignamos el valor 0

int numRep = 0;

//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);

// Queremos el rectángulo sin borde (trazo)
noStroke();

// Con un relleno negro algo transparente
fill(0, 200);

// y dibujarlo, NO desde la esquina superior izquierda,
// si no desde el CENTRO
rectMode(CENTER);
}
//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
// Comprobamos si numRep es menor de 60 con if
if (numRep < 60) {

// Si numRep es menor de 60 se ejecuta lo que sigue

// Calcula un valor aleatorio entre 10 y 30
float AnchoAltoRect = random(10, 30);

// Dibuja un cuadrado
rect(random(width), random(height), AnchoAltoRect, AnchoAltoRect);

//Para evitar que numRep sea siempre 0 debemos sumar 1 a su valor
numRep++;
}
}
// 9

// Declaramos la variable entera (int) numRep y le asignamos el valor 0
int numRep = 0;

// Declaramos la variable entera (int) margen y le asignamos, por ejemplo, el valor 15
int margen = 15;

//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);

// Queremos el rectángulo sin borde (trazo)
noStroke();

// Con un relleno negro algo transparente
fill(0, 200);

// y dibujarlo, NO desde la esquina superior izquierda,
// si no desde el CENTRO
rectMode(CENTER);
}
//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
// Comprobamos si numRep es menor de 60 con if
if (numRep < 60) {

// Si numRep es menor de 60 se ejecuta lo que sigue

// Calcula un valor aleatorio entre 10 y 30
float AnchoAltoRect = random(10, 30);

// Dibuja un cuadrado
// dentro de los márgenes
rect(random(margen + (AnchoAltoRect / 2), width - margen - (AnchoAltoRect / 2)),
random(margen + (AnchoAltoRect / 2), height - margen - (AnchoAltoRect / 2)),
AnchoAltoRect, AnchoAltoRect);

//Para evitar que numRep sea siempre 0 debemos sumar 1 a su valor
numRep++;
}
}
// 10

// Declaramos la variable entera (int) numRep y le asignamos el valor 0
int numRep = 0;

// Declaramos la variable entera (int) margen y le asignamos, por ejemplo, el valor 15
int margen = 15;

//
// Los comandos, estructuras y variables
// contenidos en la función setup() se ejecutan
// una única vez al iniciar el programa
//
void setup() {
// Con el comando size (ancho, alto)
// determinamos el tamaño de la ventana del programa
size (400, 600);

// Con el comando background(rrr, ggg, bbb, alpha)
// determinamos el color del fondo en RGB y, opcionalmente, la transparencia (alpha)
// Hay 256 posibles valores de Rojo, Verde y Azul que van de 0 a 255
background (255, 255, 220);

// Queremos el rectángulo sin borde (trazo)
noStroke();

// Con un relleno negro algo transparente
fill(0, 200);

// y dibujarlo, NO desde la esquina superior izquierda,
// si no desde el CENTRO
rectMode(CENTER);
}
//
// Los comandos, estructuras y variables
// contenidos en la función draw() se ejecutan,
// de arriba a abajo, hasta que se cierre el programa
//

void draw() {
// Comprobamos si numRep es menor de 60 con if
if (numRep < 60) {

// Si numRep es menor de 60 se ejecuta lo que sigue

// Calcula un valor aleatorio entre 10 y 30
float AnchoAltoRect = random(10, 30);

// Dibuja un cuadrado
// dentro de los márgenes
rect(random(margen + (AnchoAltoRect / 2), width - margen - (AnchoAltoRect / 2)),
random(margen + (AnchoAltoRect / 2), height - margen - (AnchoAltoRect / 2)),
AnchoAltoRect, AnchoAltoRect);

//Para evitar que numRep sea siempre 0 debemos sumar 1 a su valor
numRep++;
}
}

void mousePressed() {
// Borramos dibujando de nuevo el fondo
background (255, 255, 220);

// Reseteamos el valor 0 de la variable numRep
numRep = 0;
}
resultados: