Eloisa Herrera Nube de Colores
De Casiopea
Título | Eloisa Herrera Nube de Colores |
---|---|
Tipo de Proyecto | Proyecto de Curso |
Palabras Clave | tarea 4 |
Período | 2012-2012 |
Del Curso | Imagen Escrita 2012, |
Carreras | Arquitectura |
Alumno(s) | Eloísa Herrera |
Profesor | Herbert Spencer |
// El programa crea varios puntos que se van moviendo por la pantalla, y al presionar las teclas r, a o v cambian de color. float[][] coords; // arreglo bidimensional de coordenadas x e y int numDots = 777; // numero de puntos float c = 0.01; // constante de "suavizado" (ver abajo c´mo se utiliza) color c1 = color(128,128,128); void setup() { size(700, 700); coords = new float[numDots][2]; // inicializo el arrelgo for (int i = 0; i < numDots; i++) { // recorro el arreglo y asigno valores aleatorios coords[i][0] = random(width); // [i][0] para los valores en x coords[i][1] = random(height); // [i][1] para los valores en 7 } smooth(); background(255); } void draw() { for (int i = 0; i < numDots; i++) { // para cada uno de los puntos (o valores del arreglo)... // defino al siguiente que es el actual (i)+1 // este valor es modulado (%) por el total de puntos para no salirme del arreglo int next = (i + 1) % numDots; // calculo la diferencia en x e y entre el actual y el siguiente // y almaceno esos valores en difx, dify float difx = coords[i][0] - coords[next][0]; float dify = coords[i][1] - coords[next][1]; // ahora deino unas nuevas coordenadas que son: // las coordenadas actuales menos la diferencia ponderada por la constante c float nx = coords[i][0] -= difx * c; float ny = coords[i][1] -= dify * c; // dibujo un trazo entre la ubicaci´n actual y la siguiente stroke(0, 20); stroke(c1); line(coords[i][0], coords[i][1], nx, ny); } } void keyPressed() { // si presiono 'r' dibuja en rojo if (key == 'r') { c1=color(255, 0, 0); stroke(c1); } // si presiono 'v' dibuja en verde if (key == 'v') { c1=color(0,255,0); stroke(c1); } // si presiono 'a' dibuja en azul if (key == 'a') { c1=color(0, 0, 255); stroke(c1); } if (key == ' ') { // si preciono ESPACIO pongo un velo blanco sobre el dibujo noStroke(); fill(255, 160); rect(0, 0, width, height); stroke(0, 60); } }