Introducción a Processing 1



Descargar 1,94 Mb.
Página5/11
Fecha de conversión04.03.2017
Tamaño1,94 Mb.
1   2   3   4   5   6   7   8   9   10   11

Ejercicio 5

  • EJ05: Realizar un boceto donde se declare una variable que, en función del valor dibuje:
    • TRUE: un círculo con relleno negro.
    • FALSE: un círculo con relleno blanco.
  • Comentar todas las instrucciones.

Ejercicio 6

  • EJ06: Realizar un boceto donde se dibuje una línea horizontal a mitad de pantalla, y que además a partir del valor de la declaración de una variable dibuje:
    • TRUE: un círculo con relleno negro.
    • FALSE: un círculo con relleno blanco.
  • Comentar todas las instrucciones.

Ejercicio 7

  • EJ7: Realizar un boceto donde se declare una variable que en función del valor dibuje:
    • un círculo sin relleno.
    • un círculo con relleno blanco.
    • un círculo con relleno negro.
  • Comentar todas las instrucciones.
  • Parte 7 Control: Iteraciones
  • Las estructuras iterativas para simplificar instrucciones repetitivas.
  • Ejemplo código original
  • size(200, 200);
  • line(20, 20, 20, 180);
  • line(30, 20, 30, 180);
  • line(40, 20, 40, 180);
  • line(50, 20, 50, 180);
  • line(60, 20, 60, 180);
  • line(70, 20, 70, 180);
  • line(80, 20, 80, 180);
  • line(90, 20, 90, 180);
  • line(100, 20, 100, 180);
  • line(110, 20, 110, 180);
  • line(120, 20, 120, 180);
  • line(130, 20, 130, 180);
  • line(140, 20, 140, 180);
  • Ej. código optimizado
  • size(200, 200);
  • for (int i = 20; i < 150; i += 10) {
  • line(i, 20, i, 180);
  • }
  • Estructura y funcionamiento general de for
    • for (init; test; update) {
    • statements
    • }
  • Se ejecuta la instrucción init.
  • Se evalua la condición true o false de test.
  • Si test es true, continúa al paso 4. Si el test es false salta al paso 6.
  • Ejecuta las instrucciones del bloque.
  • Ejecuta la instrucción update y salta al paso 2.
  • Sale de la estructura de iteración y continúa ejecutando el programa.
  • Iteración: for
  • Ejemplo: for
  • for (int i = 10; i <= 90; i += 5) {
  • line(i, 10, i, 90);
  • }
  • Iteraciones anidadas
  • La estructura for produce repeticiones en una dimensión. Si anidamos esta estructura DENTRO de otra, combinando su efecto, crearemos iteraciones en dos dimensiones.
  • Ej. 1
    • for (int y = 10; y < 100; y += 10) {
    • point(10, y);
    • }
  • Ej. 2
    • for (int x = 10; x < 100; x += 10) {
    • point(x, 10);
    • }
  • Ej. 1 y 2 anidados
    • for (int y = 10; y < 100; y += 10) {
      • for (int x = 10; x < 100; x += 10) {
      • point(x, y);
      • }
    • }
  • Iteración: while
  • La estructura while ejecuta una serie de instrucciones de manera continua mientras que la expresión sea verdadera.
  • La expresión debe ser actualizada durante la iteración, de lo contrario nunca saldremos del while.
  • Esta función puede resultar peligrosa ya que el código dentro del bucle while() no se detendrá hasta que la expresión dentro del mismo resulte falsa. Bloqueará cualquier otro código a ser utilizado (los eventos de ratón no serán actualizados, etc.). Por lo tanto debemos ser cautelosos ya que podemos llegar a inmovilizar el código (y hasta a veces el entorno Processing mismo) si se usa de manera incorrecta.
  • Sintaxis
  • while (expresión) {
  • instrucciones
  • }
  • Parámetros
  • expresión una expresión válida
  • instrucciones una o más
  • Ejemplo: while
    • int i=0;
    • while(i < 80) {
    • line(30, i, 80, i);
    • i = i + 5;
    • }
  • Lectura recomendada
  • Capítulo “Control 2: Repetition” (pag. 61).
  • Ejemplo 1/16: for
  • for (int x = -16; x < 100; x += 10) {
  • line(x, 0, x+15, 50);
  • }
  • strokeWeight(4);
  • for (int x = -8; x < 100; x += 10) {
  • line(x, 50, x+15, 100);
  • }
  • Ejemplo 2/16: for
  • noFill();
  • for (int d = 150; d > 0; d -= 10) {
  • ellipse(50, 50, d, d);
  • }
  • Ejemplo 3/16: for
  • /* Cambio de matiz, mientras la saturación y el brillo se mantienen constantes */
  • colorMode(HSB);
  • for (int i = 0; i < 100; i++) {
  • stroke(i*2.5, 255, 255);
  • line(i, 0, i, 100);
  • }
  • Ejemplo 4/16: for
  • /* Cambio de saturación, mientras el matiz y el brillo se mantienen constantes */
  • colorMode(HSB);
  • for (int i = 0; i < 100; i++) {
  • stroke(132, i*2.5, 204);
  • line(i, 0, i, 100);
  • }
  • Ejemplo 5/16: for
  • /* Cambio de brillo, mientras el matiz y la saturación se mantienen constantes */
  • colorMode(HSB);
  • for (int i = 0; i < 100; i++) {
  • stroke(132, 108, i*2.5);
  • line(i, 0, i, 100);
  • }
  • Ejemplo 6/16: for
  • /* Cambio de saturación y brillo, mientras el matiz se mantiene constante */
  • colorMode(HSB);
  • for (int i = 0; i < 100; i++) {
  • for (int j = 0; j < 100; j++) {
  • stroke(132, j*2.5, i*2.5);
  • point(i, j);
  • }
  • }
  • Ejemplo 7/16: for
  • // Cambio del azul al verde en modo RGB
  • colorMode(RGB);
  • for (int i = 0; i < 100; i++) {
  • float r = 61 + (i*0.92);
  • float g = 156 + (i*0.48);
  • float b = 204 - (i*1.43);
  • stroke(r, g, b);
  • line(i, 0, i, 100);
  • }
  • Ejemplo 8/16: for
  • // Cambio del azul al verde en modo HSB
  • colorMode(HSB, 360, 100, 100);
  • for (int i = 0; i < 100; i++) {
  • float newHue = 200 - (i*1.2);
  • stroke(newHue, 70, 80);
  • line(i, 0, i, 100);
  • }
  • Ejemplos 9 a 12/16: for
  • Ejemplos 13 a 16/16: for
  • for (int y = 1; y < 100; y += 10) {
  • for (int x = 1; x < y; x += 10) {
  • line(x, y, x+6, y+6);
  • line(x+6, y, x, y+6);
  • }
  • }
  • Ejemplos 2/8: iteraciones anidadas
  • noStroke();
  • for (int y = 0; y < 100; y += 10) {
  • for (int x = 0; x < 100; x += 10) {
  • fill((x+y) * 1.4);
  • rect(x, y, 10, 10);
  • }
  • }
  • Ejemplos 3 a 4/8: iteraciones anidadas
  • Ejemplos 5 a 6/8: iteraciones anidadas
  • Ejemplos 7 a 8/8: iteraciones anidadas



Compartir con tus amigos:
1   2   3   4   5   6   7   8   9   10   11


La base de datos está protegida por derechos de autor ©absta.info 2019
enviar mensaje

    Página principal