Skip to main content
chica con cartel 1

Efecto zoom infinito

Una aplicación muy atractiva de las homotecias consiste en la posibilidad de crear un efecto de «zoom infinito», como el que se muestra en este applet. 

Siguiendo las pautas que encontraremos a continuación, su realización es relativamente sencilla. De hecho, si nuestros alumnos tienen algunos conocimientos de GeoGebra, podría ser un bonito proyecto para realizar como actividad de la asignatura.

 

¿Cómo crear una composición de este tipo?

  • La construcción se basa en varias imágenes a las que se les aplica una homotecia cuyo factor de escala se va incrementando.
  • En cada imagen hay una parte vacía, en la que estará otra de las imágenes de la composición (a su vez, con un factor de escala menor).
  • Una vez que el factor de escala «zoom» de la imagen hace que no quede nada de la imagen en pantalla (solo se vería esa parte vacía), podemos cambiar su factor de escala por uno muy pequeño, para reutilizarla y que pase a ser la imagen interior de otra de la composición.
  • Así, tan solo es necesario utilizar un número reducido de imágenes.

 

{tab title=»Elementos necesarios» class=»green»}

  • Elegimos el número máximo de imágenes que se mostrarán en la construcción. En este ejemplo, había 6.
    Pueden ser iguales o diferentes, pero siempre deben tener esa zona vacía en común.
  • Para programar en GeoGebra, lo más cómodo es controlar el factor de escala mediante deslizadores.
  • Como serán necesarios varios deslizadores, lo recomendable es utilizar una lista con los valores de esos deslizadores. A su vez, con un único deslizador general, controlaremos los valores de esta lista de deslizadores.
  • Podemos situar el centro de la homotecia en cualquier zona de la parte vacía de las imágenes.
  • Elegiremos el valor máximo de las homotecias de forma que nos aseguremos que, con ese factor de escala, en la vista gráfica solo se muestra el hueco de las imágenes.

{tab title=»Lista de deslizadores» class=»orange»}

Este es el concepto más delicado de la construcción. Si estamos proponiendo esta construcción como proyecto a nuestros alumnos, será un buen entrenamiento matemático aunque, si les resulta muy complicado, podemos darles nosotros la solución, que son las dos definiciones, inicioDeslizadores y deslizadores que tenemos más abajo.

  • El deslizador general valdrá entre 0 y 1, indicando el porcentaje del proceso completo de la animación que estamos visualizando.
  • Los deslizadores de la lista valdrán entre 0 y 1, indicando qué porcentaje del zoom máximo se va a aplicar a cada imagen. Si hay n imágenes, será una lista de n números entre 0 y 1.
  • Elegiremos sus valores de forma que los instantes en que valen 0 se distribuyan uniformemente a lo largo del proceso completo de animación. Utilizando el comando secuencia, establecemos los momentos de inicio como

    inicioDeslizadores = Secuencia(t / n, t, 0, n - 1)

    Con esto, utilizando el comando Zip, podemos establecer el valor de cada deslizador de la lista, para que vaya avanzando entre 0 y 1 según progresa el deslizadorGeneral. Para ello, lo combinaremos con el comando Si(condición, entonces, otro_caso).

    deslizadores = Zip(Si(deslizadorGeneral≥in, deslizadorGeneral-in,
                       1 + deslizadorGeneral - in), in, inicioDeslizadores)

{tab title=»Homotecias» class=»red»}

  • Utilizando la lista de deslizadores, podemos calcular el factor de homotecia, usando también una lista.
  • No siempre es conveniente que la velocidad de crecimiento del zoom sea lineal.
  • Podemos modificarlo mediante una función exponencial, elevando el valor del deslizador a una constante crecimiento. Esto ralentizará la velocidad del zoom cuando la figura es pequeña,
  • Con el comando Zip,

    valorZoom = Zip(maxZoom*d^crecimiento, d, deslizadores)

  • Por último, si tenemos las imágenes iniciales en una lista denominada Imagenes, podemos calcular las imágenes de la animación, haciendo la homotecia de centro el punto elegido, denominado Inicio, y los valores para el zoom calculados previamente:

    imagenesMostradas = Zip(Homotecia(im, zoom, Inicio), zoom, valorZoom, im, Imagenes)

{tab title=»Imágenes» class=»grey»}

  • Como ya hemos dicho, podemos utilizar una única imagen o varias, siempre que se cumpla la condición de tener la zona vacía (y transparente) en común.
  • Incluso podríamos utilizar fotografías de personas o de objetos, que editemos para que tengan esa zona transparente.
  • Para el applet del ejemplo, se han utilizado estas imágenes, del proyecto CREA, de la Junta de Extremadura (España). (Licencia CC-BY-SA)
  chico con cartel 1 
chica con cartel 2

chico con cartel 2
 chica con cartel 3  chico con cartel 4

{/tabs}

 

GeoGebra