23.09.2014
/*
 
  * Processing 2.0.2.1
  * Practica 0
 
    - CUADRADO GIRATORIO -
    Created by Daniel Balboa Navarro
    
El programa consiste en un cuadrado multicolor que según giramos
la ruleta del ratón (scroll) gira más o menos deprisa, con un círculo que
le acompaña.
De esta manera se va creando, según la velocidad, distintas
convinaciones de efectos ópticos.
 
TECLAS:
RULETA DEL RATÓN: Incrementa o decrece la velocidad de giro.
*/
 
 
// Creamos variables
 
// Variable de ángulo de giro
float angulo = 0;
 
// Variable de incremento de velocidad con rueda de ratón
float uh = 0;
 
// Variables de color
int co1 = int(random(0, 250));
int co2 = int(random(0, 250));
int co3 = int(random(0, 250));
 
float ang = 0;
float col = 0;
 
 
 
void setup() {
  size(1200, 800); // E tamaño hace que varíe el tamaño del cuadrado
  smooth();
  co1 = int(random(0, 250));
  co2 = int(random(0, 250));
  co3 = int(random(0, 250));
}
 
void draw() {
 
  // Creamos el falso fondo para darle efecto degradado
  fill(0, 12);
  rect (0, 0, width, height);
 
  // Creamos un círculo como centro de rotación
  fill(255);
  noStroke();
  ellipse(width/2,height/2,5,5);
 
  // Establecemos con que angulo, según la ruleta de ratón
  angulo = angulo + uh;
 
  // Hacemos que el centro (0,0) se situe en el centro de la pantalla
  translate(width/2,height/2);
  // y que rote según el ángulo
  rotate (angulo);
 
  //Cada bucle cambiará el cuadrado y el círculo de color
 
  if (angulo < 0){
    angulo = 0 ;
  }
  else{
    if (ang > col){
      co1 = int(random(0, 250));
      co2 = int(random(0, 250));
      co3 = int(random(0, 250));
      col = col + 6.28;
  }
 
  fill(co1, co2, co3);
    // Se establece un tamaño del cuadrado que guarde proporción
    // según el tamaño de la pantalla
  rect(10,10,height/4,height/4);
 
 
  fill(co1, co2, co3);
  ellipse(height/2, 0, height/40, height/40);
  println("angulo = "+ angulo); 
 
  ang = angulo;
  }
}
 
  // Creamos el evento de girar la ruleta del ratón,
  // que incrementará la velocidad de giro de las figuras
void mouseWheel(MouseEvent event) {
  float s = event.getCount();
  if (s == 1){
    uh = uh + 0.01;
  }
  if (s == -1){
    uh = uh - 0.01;
  }
 
// Para ver como va aumentando el giro, imprimimos en
// la consola el incremento de la ruleta de ratón
}
 
void mouseReleased() {  // para guardar una imagen
  if (key== 's' || key == 'S') {
    saveFrame("screenshot.png");
  }
}
/*

  * Processing 2.0.2.1
  * Practica 0

    - CUADRADO GIRATORIO -
    Created by Daniel Balboa Navarro
    
El programa consiste en un cuadrado multicolor que según giramos
la ruleta del ratón (scroll) gira más o menos deprisa, con un círculo que
le acompaña.
De esta manera se va creando, según la velocidad, distintas
convinaciones de efectos ópticos.

TECLAS:
RULETA DEL RATÓN: Incrementa o decrece la velocidad de giro.
*/


// Creamos variables

// Variable de ángulo de giro
float angulo = 0;

// Variable de incremento de velocidad con rueda de ratón
float uh = 0;

// Variables de color
int co1 = int(random(0, 250));
int co2 = int(random(0, 250));
int co3 = int(random(0, 250));

float ang = 0;
float col = 0;



void setup() {
  size(1200, 800); // E tamaño hace que varíe el tamaño del cuadrado
  smooth();
  co1 = int(random(0, 250));
  co2 = int(random(0, 250));
  co3 = int(random(0, 250));
}

void draw() {

  // Creamos el falso fondo para darle efecto degradado
  fill(0, 12);
  rect (0, 0, width, height);

  // Creamos un círculo como centro de rotación
  fill(255);
  noStroke();
  ellipse(width/2,height/2,5,5);

  // Establecemos con que angulo, según la ruleta de ratón
  angulo = angulo + uh;

  // Hacemos que el centro (0,0) se situe en el centro de la pantalla
  translate(width/2,height/2);
  // y que rote según el ángulo
  rotate (angulo);

  //Cada bucle cambiará el cuadrado y el círculo de color

  if (angulo < 0){
    angulo = 0 ;
  }
  else{
    if (ang > col){
      co1 = int(random(0, 250));
      co2 = int(random(0, 250));
      co3 = int(random(0, 250));
      col = col + 6.28;
  }

  fill(co1, co2, co3);
    // Se establece un tamaño del cuadrado que guarde proporción
    // según el tamaño de la pantalla
  rect(10,10,height/4,height/4);


  fill(co1, co2, co3);
  ellipse(height/2, 0, height/40, height/40);
  println("angulo = "+ angulo); 

  ang = angulo;
  }
}

  // Creamos el evento de girar la ruleta del ratón,
  // que incrementará la velocidad de giro de las figuras
void mouseWheel(MouseEvent event) {
  float s = event.getCount();
  if (s == 1){
    uh = uh + 0.01;
  }
  if (s == -1){
    uh = uh - 0.01;
  }

// Para ver como va aumentando el giro, imprimimos en
// la consola el incremento de la ruleta de ratón
}

void mouseReleased() {  // para guardar una imagen
  if (key== 's' || key == 'S') {
    saveFrame("screenshot.png");
  }
}
Grado en Bellas Artes - Facultad de Bellas Artes - Universidad Politécnica de Valencia