> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://studio.sketchpad.cc/sp/pad/view/ro.dalWbwghYA9/rev.485
 * 
 * authors: 
 *   juanantonioruz
 *   jaruz
 *   juanantonioruz

 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 



http://processing.org/reference/map_.html
/* Convierte o traslada un número de un rango a otro. Como parametros recibe: (1)el numero a convertir, (2,3) limites de rango inicial, (4,5) limites de rango final. */

// vamos a dibujar una serie de filas de rectangulos aplicando una escala de color según procentaje y numero de rectangulos en cada fila basándonos en http://studio.sketchpad.cc/sp/pad/view/EMOQvY46tS/rev.886


void setup(){
    colorMode(HSB, 255, 255, 255, 255);
    size(500, 300);
    background(0);
    frameRate(5);
    //noLoop();
}

int numeroFilas=10;
int numeroMaximo=30;
int numeroMinimo=3;

//  la función map() nos ayuda a encontrar el procentaje de una escala en relación a otra... en nuestro caso calcular el valor de saturacion en función de posicion (numero) de ladrillo en fila y numero de ladrillos en fila

void draw(){

    int altoFila=height/numeroFilas;

    for(int i=0; i<numeroFilas;i++){
        
        int numeroLadrillos=random(numeroMinimo, numeroMaximo);
        int anchoLadrillo=width/numeroLadrillos;
        int posicionYFila=i*altoFila;


        for(int j=0;j<numeroLadrillos; j++ ){

        // el valor a transformar es "j" que representa al numero de ladrillo dentro de la escala 0 a numeroLadrillos. Y la escala definitiva sería la de 0 a 255 definida en el colorMode(HSB, 255,255, 255, 255);
        int saturacionLadrillo=map(j, 0, numeroLadrillos-1, 0, 255);

            int posicionXLadrillo=j*anchoLadrillo;

            // sustituimos de HSB la s por "saturacionLadrillo"
            // colocamos el Hue en un valor fijo para toda la "pared de ladrillos"
            stroke(random(30, 70), saturacionLadrillo, 150);
            //noStroke();
            fill(50, saturacionLadrillo, 150,5);
            rect(posicionXLadrillo, posicionYFila, posicionXLadrillo+anchoLadrillo, posicionYFila+altoFila);
            }    
    }

}