Dibujando curvas en dos niveles separados

Seguimos con HCanvas. En este caso tenemos dos rectángulos trazando curvas en pantalla. Cada uno de añade a una capa diferente, de manera que los trazados no se entrecruzan sino que se superponen.

Los rectángulos siguen trayectorias más o menos aleatorias alrededor de un centro. Cada vez que se carga el programa las curvas y los colores cambian. Puedes verlo en acción en OpenProcessing

Continue reading

HRotate()

Como su nombre indica, HRotate es la versión Hype de rotate(). Veamos varios usos:

Simple

HRect r; 
HRotate rot; 
//declara el objeto HRotate de nombre 'rot'
 
void setup() {
    size(200,200);
    H.init(this).background(#242424);
    smooth();
 
    r = new HRect();
    r
        .size(75)
        .loc(width/2,height/2)
    ;
 
    rot = new HRotate(); //crea el objeto
    rot
        .target(r) //lo asigna al rectángulo 'r'
        .speed(2) //velocidad
    ;
 
    H.add(r);
}
 
void draw(){
    H.drawStage();
    /*Insertamos H.drawstage() en la función draw() 
    *porque de lo contrario no se animaría
    */
}

export

(Nota: a diferencia de ejemplos ateriores, esta animación es un GIF, de ahí la diferencia de calidad)

Continue reading

HShapeLayout()

También podemos combinar HDrawablePool con HShapeLayout para lanzar una serie de objetos que se ajustarán a la silueta de una imagen PNG.

Captura02

Para que el programa sepa dónde puede colocar los objetos necesitamos una imagen en formatos GIF o PNG, que permiten asignar transparencia a los píxeles. Lo que HShapeLayout hace es leer los píxeles de la imagen y evaluar si es o no transparente. Si lo es, no hace nada y se ejecuta de nuevo. Cuando encuentra un píxel transparente coloca un objeto en esa posición. En este ejemplo esos objetos serán gráficos vectoriales, que colorearemos con HColorPool
Continue reading