jueves, 28 de agosto de 2008

Carita en processing

Este es el código de lo que hicimos el miércoles pasado en el taller. Como tarea está cambiar el color de las figuras y si se animan, a jugar un poco más con el código.





import traer.physics.*;

ParticleSystem physics;
Particle[] particles;
Particle od;
Particle oi;
Particle aod;
Particle aoi;

void setup()
{
size( 400, 400 );
smooth();
fill( 0 );
frameRate( 24 );
//ellipseMode( CENTER );

physics = new ParticleSystem( 5.0, 0.05 );

particles = new Particle[10];

//p = physics.makeParticle( 1.0, width/2, height/2, 0 );
particles[0] = physics.makeParticle( 1.0, width/2, height/2, 0 );
particles[0].makeFixed();

od= physics.makeParticle( 5.0, width/3, height/3, 0 );
oi= physics.makeParticle( 5.0,2* width/3, height/3, 0 );
aod= physics.makeParticle( 5.0, width/3, height/3, 0 );
aoi= physics.makeParticle( 5.0,2* width/3, height/3, 0 );
aod.makeFixed();
aoi.makeFixed();
physics.makeSpring( aod,od, 2.0, 0.1, 0.01 );
physics.makeSpring( aoi,oi, 3.0, 0.1, 0.05 );

for ( int i = 1; i < particles.length; ++i )
{
particles[i] = physics.makeParticle( 1.0, width/2, height/2+i, 0 );
physics.makeSpring( particles[i-1], particles[i], 2.0, 0.1, 0.01 );
}

particles[particles.length-1].setMass( 5.0 );
}

void draw()
{
physics.advanceTime( 1.0 );

if ( mousePressed )
{
particles[particles.length-1].moveTo( mouseX, mouseY, 0 );
particles[particles.length-1].velocity().clear();
oi.moveTo( 50 +mouseX,mouseY-40, 0 );
od.moveTo( mouseX-50, mouseY-40, 0 );
}

background( 255 );

beginShape(POLYGON);
fill(256);
stroke(0);
curveVertex( particles[0].position().x(), particles[0].position().y() );
for ( int i = 0; i < particles.length; ++i )
{
curveVertex( particles[i].position().x(), particles[i].position().y() );
}
curveVertex( particles[particles.length-1].position().x(), particles[particles.length-1].position().y() );
endShape();
fill(0);
triangle( particles[0].position().x(), particles[0].position().y(),particles[0].position().x()+25, particles[0].position().y()+25,
particles[0].position().x()-25, particles[0].position().y()+25);
rect( particles[particles.length-1].position().x(), particles[particles.length-1].position().y(), 60, 20 );
rect( particles[particles.length-1].position().x(), particles[particles.length-1].position().y(), -60, 20 );
ellipse( od.position().x(),od.position().y(),20,50);
ellipse( oi.position().x(),oi.position().y(),50,20);


}

void mouseReleased()
{
particles[particles.length-1].setVelocity( (mouseX - pmouseX), (mouseY - pmouseY), 0 );
}

martes, 26 de agosto de 2008

Codigos

Antes que nada perdon por la falta de acentos, pero por problemas de conectividad estoy trabajando desde windows y el teclado esta configurado en ingles. En fin, les pongo los codigos de los ejemplos trabajados este lunes. Pueden hacer directo copy/paste a la ventana de processing y darle play.

Nos vemos manana (por cierto, tampoco hay n, bueno, me entienden no?)

Saludos.

void setup() {
size(200, 200);
background(0);
noStroke();
fill(102);
frameRate(25);}
int a = 0;
void draw() {
background(0);
fill(mouseX);
rect(120, 10, 80, 80);
fill (100, mouseX, 87);
rect (50,20, 50, 30);
fill(150,20,82);
ellipse(100, 154, 115, mouseY);
fill (mouseY,112,108);
triangle(98,90,0,59,30,40);
fill(256, 256, 256);
rect(mouseX, mouseY, 10, 10);
}

para darle formato con las tabulaciones solo deben poner ctrl+t en la ventana de processing.

import processing.opengl.*;
float a;
void setup() {
size(800, 600, OPENGL);
fill(0, 153); noStroke();
//frameRate(15);}
void draw() {
background(255);
translate(width/2, height/2);
rotateX(a);
rotateY(a*2);
//rotateX(mouseX/10);
//rotateY(mouseY/10);
fill(128, 32, 1);
ellipse(-0, -0, 400, 400);
rotateX(PI/2);
fill(1, 10, 100);
ellipse(-0, -0, 400, 400);
a += 0.05;
}

Los que no entiendan por favor chequen la documentacion en http://processing.org/reference/index.html

lunes, 11 de agosto de 2008

Bienvenidos

Hola a todos, bueno, ya que al parecer el grupo de google se les complicaba un poquito estoy abriendo este blog para comunicarnos.

Se ha convocado a diversas juntas y el quorum máximo ha sido de 4. Por lo que los invito de nuevo a formar parte de este taller.

Convoco de nuevo a una junta este lunes 18 de agosto para volver a plantear los objetivos y mecánica del taller.

Prometo comenzar a postear links de cosas interesantes, espero que los vean y comenten.

Saludos