Upload
raul-lacabanne
View
215
Download
2
Embed Size (px)
DESCRIPTION
Intro Processing v1.5 - 10 - Raúl Lacabanne
Citation preview
44
Punto 10 – Anatomía de un programa estructurado
Función setup()
En el momento de querer optimizar el código, nos damos cuenta que ciertas funciones sólo deben ser ejecutadas una vez. Para eso utilizamos la función setup(). Exponemos como ejemplo la función frameRate() de los bocetos anteriores:
float y = 0.0;
void setup() { frameRate(30);}
void draw() { background(y * 2.5); y = y + 0.5; line(0, y, 100, y);
if (y > 100) { y = 0; }}
Bloque de función setup()
Cuando en Processing se ejecuta un programa, el código que se encuentra fuera de los bloques setup() y draw() se contemplado en primer lugar. Luego, se ejecuta por única vez el código dentro del bloque setup(). Por último, se ejecuta continuamente el contenido del bloque draw().
float y = 0.0;
void setup() { size(100, 100); smooth(); fill(0);}
void draw() { background(204); ellipse(50, y, 70, 70); y += 0.5;
if (y > 150) { y = 50.0; }}
Introducción a Processing v1.5+ Docente: Raúl Lacabanne
45
Diagrama de estructura formal standard de un programa
Ámbito de ejecución de las variables
Existen dos ámbitos de ejecución de las variables: el global y el local. Cuando hablamos de ámbito global significa que podemos acceder a una variable que fue creada por afuera de cualquier bloque, desde cualquier bloque del código; mientras que cuando hablamos de ámbito local, sólo podremos acceder a una variable en el bloque que fue creada:
int d = 51; // d variable global
void setup() { size(100, 100); int val = d * 2; // val variable local en setup() fill(val);}
void draw() { int y = 60; // y variable local en draw() line(0, y, d, y); y = 25; line(0, y, d, y);}
Pero ¿cómo saber cuándo declarar una variable como global o local? Para resolver esta cuestión daremos las siguientes pistas:las variables que cambian en cada repetición del bloque draw() deben
Introducción a Processing v1.5+ Docente: Raúl Lacabanne
Sección de variables globales
Sección de inicialización
Sección de dibujo
46
ser declaradas fuera de los bloques de setup() y draw().
Lectura recomendada
• Buioli, I. & Pérez Marín, J. "Processing: un lenguaje al alcance de todos", Autoedición, 2013, Unidad 18 "Estructuras: Continuidad" (pag. 89).
• Reas, C. & Fry, B. "Processing: A Programming Handbook for Visual Designers and Artists”, MIT Press, 2007, Capítulo "Structure 2: Continuous" (pag. 173).
Introducción a Processing v1.5+ Docente: Raúl Lacabanne