Gráficos dinámicos de JSXGraph
ACTUALMENTE (10-06-2021) EN LA INSTALACIÓN DE MOODLE DE LA COMUNIDAD VALENCIANA ESTÁ DISPONIBLE EL FILTRO JSXGRAPH, LO QUE SIMPLIFICA LA UTILIZACIÓN DE JSXGRAPH EN LAS PREGUNTAS DE FORMULAS.
Se recomienda utilizar el filtro de JSXGraph en caso de estar disponible, ya que simplifica la integración de JSXGraph y Moodle.
¿Qué queremos hacer?
Se trata de generar gráficos en base a parámetros aleatorios, de modo que el gráfico que se muestre cada vez que se genera una nueva pregunta sea diferente para cada alumno.
En este caso queremos crear una gráfica que incluya:
Ejes cartesianos visibles entre -10 y 10 en ambos ejes.
Tres puntos:
A aleatorio en el primer cuadrante.
B aleatorio en el segundo cuadrante.
C sobre el eje y negativo.
Se pedirá que el alumno introduzca las coordenadas de los puntos.
Archivo XML de referencia
Qué es JSXGraph
Es una librería de Javascript que utilizaremos para realizar gráficos a partir de las variables de la pregunta de fórmulas.
La documentación de la librería se encuentra en https://jsxgraph.uni-bayreuth.de/wp/index.html
Para personalizar los gráficos y utilizar todas las opciones será necesario explorar la documentación de referencia de la librería en https://jsxgraph.org/docs/index.html
En un principio y, para comenzar a familiarizarse con ella, es recomendable reutilizar fragmentos de código de la Wiki en https://jsxgraph.org/wiki/index.php/Main_Page
Partiendo de una pregunta funcional que incluya una gráfica, es relativamente sencillo adaptarla para presentar otra representación gráfica.
Scripts
Introduciremos las gráficas a través de scripts que se ejecutarán o en el enunciado de la pregunta o en las partes.
Los scripts son fragmentos de código Javascript que permitirán la elaboración de gráficos programáticamente.
Los gráficos se generan mediante código Javascript.
Por ejemplo, para generar el punto (-3,1) haríamos algo del estilo a:
Scripts en pregunta Fórmulas
Recuerda que el editor de texto por defecto de Moodle puede hacer que el código se vuelva inutilizable. Ver Preguntas "menos sencillas".
Veamos cómo se ha hecho la pregunta de ejemplo de este apartado. He comentado el código para que se vea paso a paso lo que se va haciendo.
Los scripts se introducen con <script>
y se cierran con <\script>
.
Adaptar preguntas
Vamos a intentar hacer una pregunta que muestre:
Dos puntos A (en el origen) y B en OX positivo.
Un tercer punto C ubicado en el primer cuadrante que forme triángulo acutángulo.
El triánguno que forman.
La altura del triángulo correspondiente al vértice C con línea discontinua.
Para ello necesitaremos construir cuatro segmentos además de los tres puntos.
Visitando la wiki de JSXGraph (https://jsxgraph.org/wiki/index.php/Main_Page) y buscando por segment podemos ver varios ejemplos de segmentos: el primero de ellos se adapta a lo que buscamos. Copiamos y pegamos en nuestro código.
Tendremos que ver que:
Con esto tenemos a continuación de los tres puntos:
Simplemente trazando cuatro segmentos tenemos una pregunta totalmente diferente.
Únicamente hemos adaptado el código que ya teníamos y hemos incluido los elementos que necesitábamos.
JSXGraph es una biblioteca de geometría dinámica, por lo que los elementos que creamos pueden moverse si no los fijamos.
En este ejemplo no hemos fijado el vértice superior del triángulo y el usuario podría moverlo. Tenemos un comportamiento del gráfico totalmente indeseado.
Hay que comprobar que la construcción no tenga un "dinamismo" que no debiera.
Archivo XML de referencia
Ayudas para la redacción de este tipo de preguntas
Redactar una pregunta con tanto código directamente en el editor de Moodle y que al previsualizar todo funcione como debe es altamente improbable.
Con que falte una coma o haya cualquier errata, no se mostrará el gráfico.
Resultará interesante utilizar algún editor de código que nos permita visualizar la construcción conforme la hacemos.
Con esto tendremos varias ventajas. Entre ellas:
El editor resalta con colores la sintaxis y ayuda a leer el código.
En caso de equivocarnos, veremos en tiempo real que la construcción no funciona.
Algunas de las opciones que se pueden usar son:
Puesto que a la hora de realizar la construcción no nos importa demasiado el valor de las variables que se aleatorizan y definen en Fórmulas, es cómodo asignar valores fijos para realizar la construcción:
Al pasar el script a Moodle asignaremos las variables del script, pero sabiendo que el script funciona correctamente:
Un mundo de posibilidades
Con elementos muy sencillos se puede crear todo tipo de gráficos para preguntas STEM.
Hay multitud de ejemplos de gráficos en la Wiki de JSXGraph y en la propia referencia de la biblioteca.
En un principio, parece complicado mostrar gráficos dinámicos pero se trata más de saber qué bloque de código incluir de acuerdo a nuestras necesidades que de ser programador de Javascript.
La biblioteca JSXGraph está muy bien documentada.
Última actualización