Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Hmmm... todo bien... pero parece un poco crptico, no? Bueno, s, un poco. Hasta que nos
acostumbramos a leerlo. Veamos cmo podemos decodificarlo.
Luego de la instruccin size() nos encontramos con el bloque for. El mismo se lee as:
1) Se ejecuta la instruccin de inicializacin o contador interno (int i = 20;), que se
encarga de inicializar el valor de la variable de control (i) del bloque for. En este caso se
inicia en 20.
2) Luego pasamos a la instruccin de evaluacin (i<150;), encargada de determinar si la
variable de control se encuentra dentro del rango de valores contemplados en la condicin
(es decir, que i sea un valor menor a 150).
3) Si dicha evaluacin resulta verdadera continuamos con el paso 4. Si resulta falsa saltamos al
paso 6.
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
30
4) Se ejecutan las instrucciones dentro del bloque marcado entre llaves. Note que se utiliza la
variable de control como variable dinmica que devuelve los valores correspondientes al eje
x en coordenadas de origen y destino.
5) A continuacin se ejecuta la instruccin de actualizacin (i+=10), encargada de renovar
el valor de la variable de control. A continuacin se salta al paso 2.
6) Se sale de la estructura de iteracin y contina la ejecucin del programa.
De esta forma se procede con cada estructura for que nos encontremos:
El funcionamiento del cdigo anterior es el siguiente: por cada punto dibujado en la estructura
externa, se dibujan 9 puntos en la estructura interna.
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
31
A continuacin veremos una larga serie de ejemplos que recomendamos ejecutar y jugar con las
modificaciones de los valores de la variable de control y las formas de evaluacin y actualizacin de
dicha variable:
for(inti=10;i<=90;i+=5){
line(i,10,i,90);
}
for(intx=16;x<100;x+=10){
line(x,0,x+15,50);
}
strokeWeight(4);
for(intx=8;x<100;x+=10){
line(x,50,x+15,100);
}
noFill();
for(intd=150;d>0;d=10){
ellipse(50,50,d,d);
}
/*Cambiodematiz,mientraslasaturacinyelbrillosemantienenconstantes
*/
colorMode(HSB);
for(inti=0;i<100;i++){
stroke(i*2.5,255,255);
line(i,0,i,100);
}
/*Cambiodesaturacin,mientraselmatizyelbrillosemantienenconstantes
*/
colorMode(HSB);
for(inti=0;i<100;i++){
stroke(132,i*2.5,204);
line(i,0,i,100);
}
/*Cambiodebrillo,mientraselmatizylasaturacinsemantienenconstantes
*/
colorMode(HSB);
for(inti=0;i<100;i++){
stroke(132,108,i*2.5);
line(i,0,i,100);
}
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
32
/*Cambiodesaturacinybrillo,mientraselmatizsemantieneconstante*/
colorMode(HSB);
for(inti=0;i<100;i++){
for(intj=0;j<100;j++){
stroke(132,j*2.5,i*2.5);
point(i,j);
}
}
/*Cambiodesaturacinybrillo,mientraselmatizsemantieneconstante*/
colorMode(HSB);
for(inti=0;i<100;i++){
for(intj=0;j<100;j++){
stroke(132,j*2.5,i*2.5);
point(i,j);
}
}
//CambiodelazulalverdeenmodoRGB
colorMode(RGB);
for(inti=0;i<100;i++){
floatr=61+(i*0.92);
floatg=156+(i*0.48);
floatb=204(i*1.43);
stroke(r,g,b);
line(i,0,i,100);
}
//CambiodelazulalverdeenmodoHSB
colorMode(HSB,360,100,100);
for(inti=0;i<100;i++){
floatnewHue=200(i*1.2);
stroke(newHue,70,80);
line(i,0,i,100);
}
for(inty=1;y<100;y+=10){
for(intx=1;x<y;x+=10){
line(x,y,x+6,y+6);
line(x+6,y,x,y+6);
}
}
noStroke();
for(inty=0;y<100;y+=10){
for(intx=0;x<100;x+=10){
fill((x+y)*1.4);
rect(x,y,10,10);
}
}
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
33
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
34
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
35
Esta estructura puede resultar peligrosa para los programadores novatos ya que el cdigo dentro del
bucle while no se detendr hasta que la expresin dentro del mismo resulte falsa. Bloquear
cualquier otro cdigo a ser utilizado (los eventos de ratn no sern actualizados, etc.). Por lo tanto
debemos ser cautelosos ya que podemos llegar a inmovilizar el cdigo (y hasta a veces el entorno
Processing mismo) si se usa de manera incorrecta.
A continuacin un ejemplo simple:
inti=0;
while(i<80){
line(30,i,80,i);
i=i+5;
}
Ejercicio 08
Lectura recomendada
IntroduccinaProcessingv1.5+
Docente:RalLacabanne