noviembre 25, 2010

Una muestra de lo que se puede hacer con processing

Este programa es una de las herramientas mas lindas que he encontrado o mas bien me fue presentada por el Maestro Leonardo de la sección de imagen en movimiento de Centro Multimedia del CENART, este poderoso programa es muy sencillo en su interfase motivo por el cual su consumo de recursos en nuestros equipos al momento de la construcción de nuestras creaciones o diseños mentales no implica mas que lo que nos pide el sketch pad de Windows, pero al momento de cliquear el play del software se despliegan un mundo de posibilidades en constante desarrollo y una de las cosas mas importantes, esta orientado a la interacción en muchos sentidos, Humano-Humano (usando como interfase la maquina) Humano-Maquina y Maquina-Maquina (claro usando como interfase al Humano).
Esta herramienta además libra la zanja que aunque a sabiendas de que era una falacia o sea un error pensar que dos cosas como la ingeniería y el arte que por razones prácticas, humanas y poéticas siempre han estado vinculadas fuertemente y es solo en la percepción de los ignorantes donde estas no conviven ni tienen nada que ver.
Processing tienen muchas bondades para con nosotros, es un lenguaje bajo, esta por debajo de actionscript y por encima de c++, esto lo que posibilita es que en un momento dado sea mas estable que una programación en actionscript por ejemplo y que no nos tire el sistema, que al usar menos recursos, nos deje mas disponibles para nuestras propias aplicaciones y que para los que estén familiarizados con la programación en java sea mucho mas fácil de acceder.
El motivo de que veamos esto en la clase de Análisis de Locomoción son varios pero los que mencionare son los siguientes: Ya que su programación orientada a objetos es básicamente con finalidades gráficas podemos pensar en cursos posteriores que nos serviría como una de las herramientas básicas del análisis de locomoción, imaginen poder introducir los datos matemáticos del movimiento de un ave o del choque de un automóvil o de la salpicadura del agua de una alberca.
Esto es todo por el momento, dejo la definición de Wikipedia, la referencia en Internet y los links mas importantes por el momento.
Definición tomada de Wikipedia
Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Fue iniciado por Ben Fry y Casey Reas a partir de reflexiones en el Aesthetics and Computation Group del MIT Media Lab.
Processing es desarrollado por artistas y diseñadores como una herramienta alternativa al software propietario. Puede ser utilizado tanto para aplicaciones locales así como aplicaciones para la web (Applets).
Al estar basado en Java, puede heredar todas sus funcionalidades, convirtiéndose en una herramienta poderosa a la hora de encarar proyectos complejos.

Links:
Body Navigation by Recoil Performance Group




Ejercicio 1



//Bola b1;
int numBolas = 50;
int radioI;
Bola [] bolas = new Bola[numBolas];

void setup() {
  size(800,600 );
  background(0,0,0);
  frameRate(100);
  smooth();
  strokeWeight(0);
  //radioI= int(random(0,500));
  //b1 = new Bola(random(0,0), random(0,0), random(width-radioI),random(height-radioI), 1, 1, radioI, int(random(0,0));
  for (int i = 0; i < bolas.length; i++) {
    radioI= int(random(1,50));
    //crea cada objeto
    //Bola(float velx,float vely, float xInicio, float yInicio, int dirx, int diry, int rad, int trans)
    bolas[i] = new Bola(random(0,2), random(0,2), random(width-radioI*2)+radioI,random(height-radioI*2)+radioI, 1, 1, radioI, int(random(0,10)));
  }
}
void draw() {
  // b1.mover();
  //b1.dibujar();
  background(255,0);
  // fill(0, 0);
  // ellipse(0,0,width, height);
  for (int i = 0; i < bolas.length; i++) {
    bolas[i].mover();
    bolas[i].dibujar();
  }
}
class Bola {
  float velocidadX;
  float velocidadY;
  float x, y;
  int direccionX;
  int direccionY;
  int radio;
  int transparencia;
  /////////// constructor////////////////
  Bola(float velx,float vely, float xInicio, float yInicio, int dirx, int diry, int rad, int trans) {
    this.velocidadX = velx;
    this.velocidadY = vely;
    this.x = xInicio;
    this.y = yInicio;
    this.direccionX = dirx;
    this.direccionY = diry;
    this.radio = rad;
    this.transparencia = trans;
  }
  ///////////////////////////
  void mover() {

    x += velocidadX * direccionX;
    if ((x > width-radio) || (x < radio)) {
      direccionX = -direccionX;
    }
    y += velocidadY * direccionY;
    if ((y > height-radio) || (y < radio)) {
      direccionY = -direccionY;
    }
  }
  ///////////////////////
  void dibujar() {
    noStroke();
    ellipseMode(CENTER);
    fill(0,0, transparencia);
    ellipse(x, y, radio, radio);
    noStroke();
    stroke(0,0);
    point(x+radio, y+radio);
  }
}

No hay comentarios: