• Animaciones – La ilusión de Adelson

    ILUSIONES ANIMADAS

    En este apartado aprenderemos sobre las ilusiones visuales del grupo de investigación sobre la Ciencia Perceptual del Instituto Tecnológico de Massachusetts (MIT) liderado por Edward Adelson.

    Perceptual Science Group of the MIT. Este grupo fue creado en 1994 en el Departamento de Ciencias cognitivas y del Cerebro del MIT. El grupo se ha dedicado a la investigación de la percepción visual en brillo y transparencia, percepción de texturas, percepción de superficies, similitud perceptual, análisis de movimiento, entre otras líneas de investigación. El grupo está compuesto por cuatro profesores y un selecto grupo de estudiantes graduados o en curso[1]. Los investigadores principales son Edward Adelson (Profesor de Ciencias de la Visión), Richards Whitman (Profesor de Ciencias Cognitivas), Ruth Rosentholtz (Investigadora) y Aude Oliva (Profesora Asistente en Ciencias Visuales).

    La profesora Oliva frente al tema de contexto expresa:

     El contexto tiene efectos en múltiples niveles: semántico (una mesa y una silla se hallarán, probablemente en la misma imagen. No esperaríamos una mesa y un elefante), configuración espacial (un teclado se espera observarlo debajo de un monitor) y postura (Las sillas se esperan encontrar dirigidas hacia la mesa, una pluma de escribir esperamos verla en una posición particular respecto al papel y un auto debería estar orientado a los largo de una calle.[2]

     Nuestro cerebro tiende a asociar los objetos percibidos con los conocimientos previos adquiridos. El contexto o entorno en el cual se encuentra el objeto hace que nuestro cerebro le asigne propiedades de ese contexto al objeto percibido. Es decir, no percibimos el color y brillo reales, sino los calculados en comparación con el color y brillo de los objetos cercanos (ver la ilusión de Neblina, por ejemplo). En la siguiente imagen, creada por Edward Adelson, las casillas A y B son del mismo tono gris. Diseñaremos un applet que evidencie la igualdad de color.

    adelson1

    Algunos demos en flash se han publicado en http://web.mit.edu/persci/gaz/main-frameset.html, de los cuales hemos escogido la ilusión de Haze y el anillo de Koffka para diseñarlos en próximos apartados, pero ahora nos centraremos en la ilusión de Adelson[3].

    Las animaciones múltiples en Descartes. El Nippe Descartes trae la opción de animación. En principio parece que sólo podemos realizar una sola animación; sin embargo, usando algunas expresiones de tipo booleano podemos lograr varias animaciones en una sola escena.

    La ilusión del tablero ajedrezado

    La ilusión de Adelson  está compuesta de un tablero de 25 paralelepípedos, un cilindro y una sombra (shadow). El diseño de la escena lo haremos comenzando con la parte gráfica para terminar con las propiedades del espacio, las auxiliares y la animación.

    Escena. Inicialmente, crearemos una escena  de 550×400, en la que agregaremos, además, un espacio 3D con despliegue pintor y parámetros como los que indica la imagen.

    adelson2

    Gráficos. Inciaremos con la creación de los 25 paralelépipedos que se han numerado en la imagen siguiente. En la posición de los paralelépipedos 16, 17, 21 y 22 situaremos el cilindro.

    adelson3

    Paralelepípedos. Insertaremos estos prismas en el orden que se presenta en la tabla. Cada paralelepípedo tendrá un ancho y largo de 0.5 y un alto de 0.3, aristas activadas, sus colores serán alternados en gris claro y blanco, excepto en los colores de contexto.

    adelson4

    Aprovecharemos, en algunos paralelepípedos, la opción familia, que identificaremos por el posini y la observación; no obstante, debido a la animación, algunos serán construidos individualmente.

    adelson5

     Observemos que los paralelepípedos 13 y 24 tendrán una altura variable, estos prismas serán los que animaremos posteriormente.

    Cilindro. Insertemos un cilindro de color verde claro, ubicado en la posición   (-3, 1.7, .65), con ancho y largo de 0.8, Nu = 40 y Nn = 1.

    adelson6

    Tapa del cilindro. Añadimos la tapa del cilindro insertando un polígono regular (Polireg) en la posición (-.3, 1.7, 1.15), las demás propiedades de color, ancho, largo, Nu y Nv son iguales a las del cilindro.

    Caras de contexto (sombra). Para emular la sombra del cilindro sobre el tablero, insertaremos siete caras de color gris obscuro y una cara de color gris (extremo izquierdo de la imagen siguiente), cada cara tendrá un posini de (0, 0, 0.15).

    adelson7

    Observemos que se trata de siete triángulos negros y un cuadrado gris claro. Analiza aparte las coordenadas de estos cuatro tipos de gráficos (paralelepípedo, polígono regular, cilindro y cara.

    adelson8

    Segmentos. Añadimos dos segmentos de color rojo y naranja de acuerdo a las siguientes imágenes:

    adelson9

    Los segmentos desaparecen cuando k empieza a aumentar en la animación.

    Controles. Usaremos dos controles tipo botón. El primero tendrá como nombre Verificar y demás propiedades como aparecen en la imagen de abajo. El segundo botón tendrá las mismas propiedades excepto: nombre = Regresar, dibujar-si = k > 0.8 y parámetro  p = 0. Los colores de los botones los podemos cambiar a nuestro gusto.

    adelson10

    Algoritmo de inicio. Hemos usado dos variables para rotar el espacio E1.rot.y = 35 y E1.rot.z = 60.

    adelson11

    1Animación. Finalmente insertamos una animación tal como se indica en la imagen.

    adelson12

    Analicemos la expresión k=k+.1*(p=1)*(k<1.1)-.1*(p=0)*(k>0.1). La variable k será incrementada en una décima, cuando P es igual a uno y k es menor que 1.1; es decir, el sumando .1*(p=1)*(k<1.1) tiene dos tipos de valor: 0.1 si las expresiones booleanas en paréntesis son verdaderas (.1*1*1) o 0 si alguna expresión booleana es falsa (.1*0*1 ó .1*1*0 ó .1*0*0). Análogamente funciona el decremento de k con el tercer sumando: -.1*(p=0)*(k>0.1). También podemos comprender la utilidad de los dos botones diseñados. A continuación, mostramos la escena final.  Nos queda como tarea incluir los textos.

    (Puede descargar  esta escena y todas las de este artículo desde  este enlace)

    [1] El calificativo de selecto no es gratuito. Véase, por ejemplo, la tesis doctoral de Fleming sobre percepción de superficie.

    [2] Oliva & Torralba (2007). Trends in Cognitive Sciences (2007), Vol. 11 No. 12, pág 520.

    [3] Además de los demos, el grupo ha vinculado una gran cantidad de publicaciones que se pueden descargar fácilmente.

  • Animaciones – Las ilusiones de Koffka y de Haze

    El anillo de Koffka

    Esta ilusión la realizaremos utilizando tres animaciones.

    Espacio. Creamos una escena de 600×400 y un espacio 2D, tal como aparece en la imagen.

    koffka1

    Controles. Usaremos tres controles interiores tipo botón (n1, n2, y n3): el primer botón (n1) es para iniciar la segunda animación (la primera se ejecuta al inicio de la escena), el segundo botón (n2) es para ejecutar la tercera animación y el tercero es un botón de inicio (regresa a la primera animación).

    koffka2

    Botón Ilusión 1. Su configuración se muestra en la imagen anterior. Observemos que se dibuja si cumple con la siguiente condición: (d=0) & (k2=0) & (h1<1.1), donde d y h1 son variables de desplazamiento horizontal y vertical respectivamente, y k2 es una variable cuyos valores (0 ó 1) determinan si se inicia o no la animación dos. Los colores quedan a nuestra discreción.

    Botón Ilusión 2. Tiene las mismas propiedades del anterior, excepto por el nombre (Ilusión 2), el color, el dibujar-si que es igual a (d>.3) & (k1=1) y el parámetro de cálculo que es k2=1 \nn=55.

    Botón inicio. Tiene las mismas propiedades de los anteriores, excepto por el nombre (Inicio), el color, el dibujar-si que es igual a (h2<.1)&(k2=1) y el parámetro de cálculo que es k2=0 \nk1=0 \nn=0 \nd=0 \nh1=5 \nh2=5.[1]

    Algoritmo de inicio. Creamos tres variables: h1 = 5, h2 = 5 y n = 0. Las dos primeras las usaremos en la construcción de la gráfica y variarán en la animación. La última es una variable de control para las animaciones.

    koffka3

    Gráficos. Utilizaremos siete gráficos: dos polígonos, cuatro arcos y un texto.
    koffka4

    Polígonos. Corresponden a los dos rectángulos sobre los que se superpondrá el anillo de Koffka. El primero estará definido por las coordenadas:

    (-3-d, 5.5)(-d, 5.5)(-d, -3)(-3-d, -3)(-3-d, 5.5)

    Su color es la combinación RGB 555555 (ver imagen siguiente)[2].

    koffka6

    El segundo polígono (del lado derecho) estará definido por las coordenadas:

    (3+d, 5.5)(d, 5.5)(d, -3)(3+d, -3)(3+d, 5.5) y color gris claro.

    Observemos que los rectángulos incluyen, en su definición, la variable d. Eso significa que si d>0 entonces el primer polígono se desplazará a la izquierda y el segundo a la derecha.


    koffka7El anillo.
    Lo construiremos con cuatro arcos para poder realizar las animaciones correspondientes. Habrá, entonces, dos arcos mayores y dos arcos menores. Los arcos menores tendrán un relleno igual al color del rectángulo donde se superponen (ver imagen derecha) y los arcos mayores un color gris uniforme.

    En la siguiente tabla se indican las propiedades de cada arco:

    koffka8

    Observemos que los arcos dependen de la variable d para su desplazamiento horizontal y de las variables h1 y h2 para el desplazamiento vertical. En la primera y segunda animación h1 = h2 (ver escena al final de este apartado), en la tercera sus valores son diferentes.

     El texto. Insertamos un texto para el título de la escena. El tamaño, tipo de letra y color, es a nuestra discreción.

    Animaciones. Usaremos tres animaciones en una sola, utilizando controles booleanos. En la imagen siguiente podemos observar, inicialmente, que:

    Se encuentran activadas las casillas Animación, auto y repetir. Esta activación es parte clave para nuestras animaciones. Auto permite que la escena se inicie con la primera animación y repetir permite que el ciclo hacer – mientras se repita indefinidamente. Es decir, n inicia en cero y se incrementa hasta un valor de 80; luego se repite continuamente este proceso.

    koffka9

    Durante la ejecución de los ciclos se realizan las siguientes animaciones:

    Animación 1. Esta animación se logra a través de las instrucciones:

    h1=h1-.1*(n<40)

    h2=h2-.1*(n<40)-.1*(n>70)*(n<81)*(k2=1)

    Recordemos que  definimos h1 = h2 = 5 y n = 0, esto significa que los arcos se encuentran en la ordenada cinco. Al ser verdadera la expresión n<40, entonces, durante el primer proceso de auto animación los valores de h1 y h2 se reducirán en una décima por cada ciclo, hasta que n sea igual a 40; es decir, los valores de h1| y h2 se reducirán en 40*.1 = 4, hasta quedar en la ordenada uno. La animación consiste en deslizar verticalmente hacia abajo el anillo de Koffka. Cada vez que hagamos clic en el botón inicio, h1 y h2 volverán a tomar el valor de cinco y n el de cero, repitiendo la animación.

    Animación 2. Esta animación se logra a través de la instrucción:

    d=d+.1*(n>50)*(n<55)*(k1=1)

    El valor de la variable d se incrementa cuando k1 = 1; es decir, cuando hacemos clic sobre el botón “Ilusión 1”. Este incremento es sólo de cinco décimas ¿por qué?

    Animación 3. Esta animación es más interesante, en tanto que junta de nuevo arcos y polígonos y, desplaza la segunda mitad del anillo hacia abajo. Se logra a través de las instrucciones:

    h2=h2-.1*(n<40)-.1*(n>70)*(n<81)*(k2=1)

    d=d-.1*(n>55)*(n<60)*(k2=1)

    Observemos que la variable d vuelve a recuperar las cinco centésimas perdidas en la animación anterior y que h2 se reduce en la misma cantidad. Si analizamos con cuidado ambas instrucciones, notaremos que:

    • Las reducciones de d y h2 se ejecutan cuando k2 =1; es decir, cuando se hace clic sobre el botón “Ilusión 2”.
    • Primero se reduce la variable d y luego empieza a descender la segunda parte del anillo.

    Finalmente, observemos la escena:

    (Puede descargar la escena anterior desde este enlace)

    La ilusión de neblina de Haze

    Esta ilusión se ha diseñado utilizando los conceptos anteriores: familias de polígonos, arcos y animaciones. Proponemos, como tarea, estudiarla y tratar de reproducirla. Si se presentan problemas, podemos copiar editar la escena  para  analizar la forma como fue diseñada.  A continuación, se presenta la escena:
    (Puede descargar la escena anterior desde este enlace)

    [1] Recuerda que RGB significa Red Green Blue (Rojo, Verde y Azul)

    [2] Recuerda que los cálculos definidos en parámetro se pueden ingresar haciendo clic en el botón parámetro ó sobre el mismo cuadro de diálogo separando cada cálculo con la expresión \n (barra inclinada inversa + n).

  • Otras figuras 3D

    Descartes tiene algunos gráficos o figuras 3D que pueden construirse usando los otros objetos cartesianos, pero que se incluyen entre los gráficos del sistema por comodidad. En general estos gráficos siguen la misma tónica, dependen de algunos de los parámetros ancho, largo, alto, Nu y Nv y su expresión es sólo un identificador para la edición. He aquí la lista de estos gráficos con una escena en la que se puede ver cada uno de ellos:

    Cubo

    Tetraedro

    Octaedro

    Dodecaedro

    Icosaedro

     

    Esfera

    Elipsoide

    Cono

     

    Cilindro

    (Pueden descargarse las escenas anteriores desde este enlace)

  • Texto 3D

    Éste es el panel de configuración de un texto.

    panel_texto_3d

    expresión

    Es un campo de texto. Su contenido debe tener la forma: (X,Y) donde X e Y son expresiones numéricas que determinan la posición del texto en píxeles medidos de izquierda a derecha y de arriba abajo con respecto al vértice superior izquierdo de la ventana del espacio.

    texto

    Etiqueta que contiene el texto a representar. Los textos pueden tener varias líneas y además pueden incluir valores numéricos variables (ver Textos). El valor por defecto es vacío.

    decimales

    Es el número de decimales con los que se escribirán los números incluidos en el texto. Puede ser cualquier número o expresión. Al evaluarse se redondea para decidir el número de decimales. Su valor por defecto es 2.

    fijo

    Determina si el número de decimales es fijo o si, por el contrario, se usa la notación «ajustada» en la que se eliminan los ceros innecesarios y el punto decimal si también es innecesario. Por ejemplo: en lugar de 25.3400 se escribe 25.34 y en lugar de 13.0 se escribe 13 (sin punto decimal). Si se usa notación exponencial siempre se escriben los números en forma ajustada, es decir, el atributo fijo no interviene en ese caso. El valor por defecto es fijo=si.
  • Superficie 3D

    Éste es el panel de configuración de una superficie:

    panel_superficie_3d

    expresión

     

    Es un campo de texto. Su contenido debe tener la forma: x=X(u,v) y=Y(u,v) z=Z(u,v)donde X, Y y Z son expresiones numéricas dependientes de los parámetros u y v. La superficie consta de la red de cuadriláteros formada por los puntos:(X(i/Nu,j/Nv),Y(i/Nu,j/Nv),Z(i/Nu,j/Nv)) para i=0,…,Nu y j=0,…,Nv. Antes de x, y, z se pueden definir variables intermedias que sólo se usan para los cálculos que se realizan al dibujar la superficie.