• Comunicación con JavaScript desde una escena Descartes a la API de una plataforma educativa vía paquete Scorm

    Elena Álvarez nos enseñaba en un post (elaboración Scorm con Reload) el modo de usar las funciones de comunicación de Descartes que, mediante la inclusión de un iFrame (véase este artículo) en una escena de descartes, nos permitía elaborar un paquete Scorm funcional y capaz de pasar parámetros (la nota, por ejemplo) a una plataforma educativa (por ejemplo Moodle).

    En un anterior post mío indicaba el modo de comunicar mediante instrucciones de JavaScript una escena de descartes con una página web totalmente independiente. En el ejemplo que exponía pasábamos 6 parámetros a una página independiente o, incluso, podíamos pasar parámetros a Google Maps con JavaScript. Véase post explicativo

    Tenemos otro modo de comunicar una escena de Descartes-JS con la API de la plataforma educativa (Mooddle, por ejemplo) usando directamente JavaScript.  He realizado un paquete scorm con una actividad (con test) desde un punto de vista diferente al realizado por la compañera Elena Álvarez.

    En este caso, la escena de descartes (descartes.html) es la que está embebida (como un iframe) en la página padre (index.html) y se envía la información a través de dos botones incluidos en la escena de Descartes (comunicación entre una escena descartes y una página web) que en este caso se denominan «validar nota» y «finalizar».

    En este caso, no necesitamos ningún fichero.js ni librería adicional ya que los scripts necesarios para la comunicación con el API de la plataforma educativa se encuentran en la página index.html, en la que podemos añadir otras funcionalidades.

    Por otra parte, podemos enviar otro tipo de información adicional (bien desde la propia escena.html descartes, o bien desde la página index.html, según convenga) como el tiempo que duró la realización del test o la visualización de la escena, número de tentativas realizadas…

    En la escena debemos incluir una variable llamada nota4  y otra llamada Score (el nombre de estas variables, lógicamente, los podemos cambiar) que será el resultado del cálculo de la nota final de la escena en un algoritmo de descartes:

    nota4=’getElementById(cogenota).value = Score’

    Aspecto del algoritmo

    Lo que hace el algoritmo es depositar el resultado (Score) en el elemento de la página index.html identificado como «cogenota» (que está oculto).

    Si descomprimimos el paquete scorm que adjunto, podemos simplificar mucho su elaboración, ya que simplemente deberíamos sustituir la página escena.html por otra con el mismo nombre adicionando estos dos botones:
    id=’n37′ tipo=’numérico’ interfaz=’botón’ región=’interior’ espacio=’E5′ nombre=’Validar respuestas’ expresión='(160,150,140,30)’ fijo=’sí’ visible=’sí’ color=’blanco’ color-int=’rojo’ negrita=’sí’ subrayada=’sí’ fuente puntos=’14’ acción=’abrir URL’ parámetro=’javascript:void(parent.document.getElementById(&squot;cogenota&squot;).innerHTML=[Score]);’

    Botón «Validar respuestas». El código se inserta en «Abrir URL» de la escena de Descartes

    La función parent.document.getElementById(«cogenota»).innerHTML=[Score] toma la nota de la página index.html.

    y

    id=’n47′ tipo=’numérico’ interfaz=’botón’ región=’interior’ espacio=’E5′ nombre=’Finalizar’ expresión='(300,150,80,30)’ fijo=’sí’ visible=’sí’ color=’blanco’ color-int=’azul’ negrita=’sí’ subrayada=’sí’ fuente puntos=’14’ acción=’abrir URL’ parámetro=’javascript:void(window.parent.SetScormScore());’ pos_mensajes=’centro’

    Botón «Finalizar». El código lo colocamos en «Abrir URL» de Descartes

    La función window.parent.SetScormScore(),  envía la nota al core de Moodle (por ejemplo) .
    Para finalizar, metemos la escena.html en el scorm (arrastrar y soltar) y, si es necesario, modificamos las dimensiones del iframe en index.html para que se adapte a las dimensiones de la simulación.
    La escena.html se puede abrir perfectamente en el editor de Descartes (la he abierto muchas veces y no se perdió información).
    Adjunto el scorm para que se pruebe (lo podéis descomprimir y cambiar la escena), se hicieron pruebas en Moodle 2.6++ y 3.0.1 y funcionó bien.

    Podéis bajar el Scorm en: Bajada del scorm
    También podéis añadir el paquete scorm como «paquete bajado»  en las definiciones de Moodle desde la dirección anterior en:

    https://www.reddescartes.org/repositorio/pasovariableswebindep-JS/scorm_descartes.zip

     

  • Sintaxis del código de una escena

    Llamamos código de una escena de Descartes al que hay que insertar en el código html de una página Web para que la escena aparezca. El formato externo es pues el mismo que el de cualquier bloque html, es decir, el código comienza con una etiqueta que en este caso es <ajs…>para la escena en DescartesJS (<applet…> en Descartes Java) en la que se incluyen algunos atributos, sigue una serie de etiquetas <param … > cada una con los atributos name=»…» y value=»…», y termina con </ajs> (respectivamente </applet>).

    En principio es posible crear manualmente una escena de Descartes escribiendo el código directamente en una página html. Aunque no es necesario hacerlo así, el autor de escenas encontrará a veces conveniente retocar directamente el código de sus escenas, para lo cual es conveniente que se familiarice con el contenido de esta página.

    Como se detalla en los artículos que describen los editores de configuración Descartes genera automáticamente el código de una escena. El botón código es una de las alternativas para acceder a éste y al pulsarlo aparece una nueva ventana, llamada ventana de código del applet, que tiene, por ejemplo, este aspecto en el gestor de escenas:

    código de una escena

    código de una escena en la ventana de código del editor de configuración

    El código aparece en un área de texto al centro de la ventana, y además aparece seleccionado, listo para ser copiado con Ctrl-C y pegado en alguna página html. En la parte superior de la ventana aparecen dos líneas. La primera tiene cuatro campos de texto: nombre, codebase, width y height, que corresponden a unos atributos de la etiqueta <applet> y permiten afinar la configuración. En la segunda línea aparecen dos selectores (código HTML y pop o emergente), dos campos de texto (b_width y b_height) y un botón (aplicar).

    En la parte inferior, la ventana tiene una etiqueta que explica lo que puede hacerse con el contenido del área de texto, y una línea con l selector LMS y dos campos de texto (CURSO y UNIDAD), que están relacionados con el sistema LMS de seguimiento de actividades de los alumnos.

    La siguiente tabla explica el significado de todos estos campos.

    nombre

     

    El nombre de la escena.El nombre es un campo opcional pero conviene usarlo.Debe ser una sola palabra sin espacios que servirá para identificar la configuración específica y distinguirla de otras que podrían aparecer en la misma página. Es muy útil poner un nombre que identifique una configuración y la distinga de cualquier otra, particularmente cuando se realizan modificaciones a una configuración existente.

    codebase

     

    El CODEBASE es la dirección, relativa a la página html, en donde se encuentra el archivo jar. Es propio del código de la escena en Java.
    width
    El ancho de la escena medido en pixeles.Debe ser un número positivo y es el ancho (en pixeles)
    del rectángulo que asigna el navegador a la escena.
    height
    La altura de la escena medida en pixelesDebe ser un número positivo y es el alto (en pixeles)
    del rectángulo que asigna el navegador a la escena.
    código HTML
    Selector que define si el applet se codificará usando la codificación HTML estándar.Es un selector que permite decidir si se codifican las letras acentuadas,
    la ñ, la ç, etc… utilizando la codificación estándar de HTML.Por defecto aparece activado pues es recomendable usarla para asegurar que las escenas
    creadas puedan visualizarse en cualquier plataforma.(No aplicable a DescartesJS).
    pop
    Selector que permite definir si la escena será de tipo «pop» o emergente, lo cual significa que en la página html sólo aparece un botón (con el nombre de la escena) que al pulsarse lanza la escena en una ventana nueva.
    b_width
    Si la escena es de tipo «pop», entonces b_width es el ancho en pixeles del botón que
    lanza la escena.
    b_height
    Si la escena es de tipo «pop», entonces b_height es la altura, en pixeles, del botón
    que lanza la escena.
    aplicar Sirve para aplicar las modificaciones a la configuración y que éstas aparezcan en el código del applet.
    LMS
    Este selector debe activarse si se desea utilizar esta escena en el
    sistema LMS de seguimiento de actividades de los alumnos .En tal caso hay que dar el nombre oficial del curso y de la unidad a las que pertenece. (No aplicable a DescartesJS).
    CURSO
    Nombre oficial (registrado en el LMS) del curso al que
    pertenece esta escena.Sólo debe llenarse si la escena va a estar conectada a un servidor LMS. (No aplicable a DescartesJS).
    UNIDAD
    Nombre de la unidad didáctica a la que pertenece esta escena. (No aplicable a DescartesJS).

    En general, entre la etiqueta <ajs…> y su cierre </ajs> hay varias líneas que comienzan con <param name= y contienen los llamados parámetros de la escenas. Lo que sigue a continuación de <param name= es el nombre de un parámetro y va entre comillas dobles. Luego aparece value=  y una cadena, entre comillas dobles que se llama el valor del parámetro. Un valor de parámetro, es decir una cadena asignada a la etiqueta value, no puede contener una doble comilla pues el navegador la interpretaría como el final de la cadena. Estos pares de nombres y valores  o name y value se llaman los «parámetros» de la escena. En la tabla que sigue se describen los nombres de los parámetros de Descartes así como el posible contenido de sus valores.

    name

    value

    name=»nombre»

     

    value=»Aperitivo»Nombre de la escena.

    name=»Versión»

     

    value=»3.5″Es el número de la versión de Descartes con la que se generó el código. Se incluye como información. En principio una escena creada por una versión determinada deberá poder ser interpretada correctamente por cualquier versión posterior. Siempre se marca como objetivo mantener la compatibilidad hacia atrás.
    name=»Idioma» value=»español»El idioma en que debe presentarse la escena. En la versión 2 de Descartes hay cinco posibles idiomas: english, español, catalá, galego y euskera. Los nombres deben escribirse tal como se hace en la frase anterior.
    name=»Botones»
    value=»créditos=si config=si inicio=si limpiar=si»Define cuáles de los cuatro botones
    que suelen aparecer en las cuatro esquinas de una escena deben aparecer y cuáles no. (Ver Botones).
    name=»Espacio»(un sólo espacio) value=»fondo=negro red=grisObscuro ejes=gris texto=rosa»Define los cuatro colores básicos del espacio de una escena con un único espacio R2. También define si se deben dibujar en el espacio la red, los ejes y si se deben numerar y/o etiquetar los ejes. Por ejemplo:  números=si eje-x=’eje x’ eje-y=’no’.Nota: Este parámetro se conserva por compatibilidad con
    Descartes2 y sólo se utiliza para leer configuraciones antiguas. El código generado por Descartes 3 y posteriores lo excluye en favor de E_00 (ver la siguiente fila de la tabla).
    name=»E_00″name=»E_01″name=»E_02″(espacios) Ejemplo para un espacio R2:value=»id=’E00′ R3=’false’ despl_imagen=’arr-izq’ fondo=’blanco’ red=’no’ red10=’negro’ ejes=’gris’ texto=’grisObscuro’ números=’false’«Ejemplo para un espacio R3: 

    value=»id=’E01′ R3=’true’ escala=’24’
    O.y=’20’ x=’9%’ y=’53%’ ancho=’32%’ alto=’44%’ despl_imagen=’arr-izq’ fondo=’turquesa’
    despliegue=’pintor’ cortar=’true'»

    Es la configuración de un espacio. Contiene el identificador id, que debe ser una palabra sin espacios ni símbolos de operadores y que comienza con una
    letra. Estos son los parámetros de cada tipo de espacio:

    R3=false

    id, R3, escala,
    O.x, O.y, x, y, ancho,
    alto, imagen, despl_imagen, fondo, red, red10, ejes, texto, eje_x, eje_y, números.

    R3=true

    id, R3, escala,
    O.x, O.y, x, y, ancho,
    alto, imagen, despl_imagen, fondo,
    despliegue, cortar.
    name=»C_00″name=»C_01″name=»C_02″(controles) value=»id=escala
    tipo=numérico valor=’50’ decimales=’4*(escala<10)’ incr=’10’ min=’10’ max=’1000000′
    nombre=zoom región=norte»
    Es la configuración de un control. Contiene el identificador id, que debe ser una palabra sin espacios y que comienza con una letra, el tipo de control (numérico o gráfico) y los demás campos  que completan la configuración de un control. Estos son los nombres de todos los campos posibles (ver Controles para consultar el significado y los posibles valores
    de estos atributos): 

    tipo=numérico

    id, tipo,
    valor, decimales, incr, min,
    max, nombre, región, visible,
    exponencial-si y pos_mensajes.

    tipo=gráfico

    id, tipo,
    expresión, color, color-int, texto,
    decimales, tamaño, dibujar-si, rastro,
    constricción y fuente.
    name=»A_00″name=»A_01″name=»A_02″(Auxiliares) value=»id=FP expresión=’sqrt(x^2+(p-x^2/(4*p))^2)'»Es la configuración de un auxiliar. Contiene el identificador id, su expresión
    y según el tipo, los siguientes atributos (ver los auxiliares para consultar el significado y los posibles valores de estos atributos): 

    variable id, expresión,
    editable.
    constante id, expresión,
    constante, evaluar.
    vector id, expresión,
    vector, tamaño, evaluar.
    algoritmo id, algoritmo,
    inicio, hacer, mientras, evaluar
    función id, expresión,
    dominio, algoritmo, inicio, hacer,
    mientras.
    sucesion id, expresión,
    dominio, algoritmo, inicio, hacer,
    mientras.
    evento id, condición,
    acción, parámetro, ejecución y pos-mensajes
    name=»G_00″name=»G_01″name=»G_02″(Gráficos) value=»espacio=’E00′
    tipo=ecuación expresión=’y=x^2/(4*p)’ color=amarillo»
    Es la configuración de un gráfico.Contiene el tipo de gráfico, la expresión que lo define, el color y los demás parámetros. Todos los gráficos tiene estos atributos:espacio, tipo, fondo, dibujar-si, color, expresión, rastro, familia, s.parámetros.intervalo, s.pasos, texto, decimales, fijo, coord_abs.La tabla enumera los atributos específicos adicionales de cada tipo de gráfico. (Ver Gráficos 2-D para consultar el significado y los posibles valores
    de los atributos): 

    ecuación

    ancho, visible,
    editable, relleno+, relleno
    curva ancho, visible,
    editable, relleno, t.parámetro, t.intervalo, t.pasos
    sucesión tamaño, dominio
    punto tamaño, texto,
    fuente, decimales.
    segmento tamaño, texto,
    fuente, decimales.
    flecha tamaño, texto,
    fuente, decimales, ancho, punta.
    polígono ancho, texto,
    fuente, decimales, relleno.

    arco

    centro,
    radio, inicio, fin, texto,
    fuente, decimales, ancho, relleno.

    relleno

     

    texto


     

    texto

    , fuente, decimales.

    imagen


     

    archivo, animado, frecuencia

    .

    macro


     

    nombre

    .

    name=»S_00″name=»S_01″name=»S_02″(Gráficos) value=»espacio=’E01′ tipo=’Octaedro’ color=’naranja’ color_reverso=’rosa’ aristas=’true’
    rotini='(180,0,30*(1+C.x))’ posini='(0,0,1.5*C.y+1.5)’ modelo=’luz’ cortar=’false'»
    Es la configuración de un gráfico en 3 dimensiones.Contiene el tipo de gráfico, la expresión que lo define, los colores, la posición y la rotación iniciales y los  parámetros de presentación. Todos los gráficos 3D, tienen estos atributos: espacio, tipo, fondo, dibujar-si, nombre, expresión, rotini, posini, color, cortar, ancho.La tabla enumera los atributos específicos adicionales de cada tipo de gráfico en 3D. (Ver Gráficos 3D para consultar el significado y los valores posibles de los atributos): 

    punto texto, fuente,
    decimales, fijo.
    segmento Nu
    curva Nu
    polígono Nu
    triángulo color_reverso,
    aristas, modelo
    cara color_reverso,
    aristas, modelo, Nu

     

    polireg


     

    Nu,
    largo.


     

    superficie


     

    color_reverso,
    aristas, modelo
    , Nu, Nv

    texto


     

    texto, fuente, decimales, fijo.


     

    macro

     
    name=»Animación» value=»id=Animación algoritmo=si inicio=’T=0′ hacer=’T=T+0.05′ mientras=’T<2′ pausa=’80’ auto=si repetir=si controles=no»Es la configuración de la animación. Contiene dos atributos fijos y obligatorios: id=Animación y algoritmo=si y los atributos de un algoritmo: inicio, hacer, mientras.
    Además contiene los atributos pausa, auto, repetir y controles. (ver Animación para consultar el significado y los posibles valores de los atributos)
  • Referencia, localización y ubicación de los intérpretes

    Para que una escena se pueda interpretar ha de referenciarse y ubicar el intérprete que se desea usar. El gestor de escenas incluye el código necesario de acuerdo a la opción seleccionada en el submenú «Opciones», pero puede modificarse si el usuario lo desea.

    1. En el intérprete Java la referencia va descrita en el parámetro de la escena denominado «jnlp_href» cuya sintaxis es:

    <param name=»jnlp_href» value=»https://arquimedes.matem.unam.mx/Descartes5/lib/Descartes5.jnlp«>

    En el ejemplo anterior se accede a una dirección de Internet para descargar el intérprete. En este caso se ha reflejado la correspondiente al directorio de distribución ubicado en el servidor arquimedes de la UNAM en México y se trata de una escena de Descartes5, si fuera un discurso habría que poner

     https://arquimedes.matem.unam.mx/Descartes5/lib/Arquimedes.jnlp 

    y para una escena de la versión 2 sería

     https://arquimedes.matem.unam.mx/Descartes5/lib/Descartes2.jnlp.

    Para una referencia local relativa a la ubicación de la página html que contiene a la escena basta cambiar el parámetro value. Por ejemplo:

    <param name=»jnlp_href» value=»./lib/Descartes5.jnlp«>

    indica que el archivo Descartes5.jnlp está en un directorio denominado lib al nivel de la página de llamada (en este mismo directorio habrá de ubicarse el archivo Descartes5.jar que es referenciado por el anterior). Análoga situación ha de contemplarse, cuando sea necesario, para discursos y escenas de la versión 2.

    2. En el intérprete DescartesJS es necesario incluir la llamada al archivo descartes-min.js  que contiene el código javascript del intérprete. Para ello, en cualquier posición de una página html y previamente al código de la primera escena a interpretar se incluirá:

    <script type=’text/javascript’ src=’https://arquimedes.matem.unam.mx/Descartes5/lib/descartes-min.js’></script>

    En este caso el intérprete se localizaría y descargaría desde el servidor arquímedes de la UNAM. Si se desea que la localización sea a nivel local podría ponerse:

    <script type=’text/javascript’ src=‘./lib/descartes-min.js‘></script>

    y se buscará en el directorio denominado lib ubicado en el árbol de directorios al mismo nivel donde está la página que incluye esta llamada. Obviamente ha de existir ese directorio y en él ha de estar el archivo descartes-min.js.

    ____________________________________________________________________

    Independiente de la modalidad del intérprete (Java o javascript) en:

     https://arquimedes.matem.unam.mx/Descartes5/lib/

    estará siempre la última versión del intérprete. Por tanto, si se utiliza esta referencia siempre se interpretará la escena con la última versión existente.

    Si se utiliza una referencia a un servidor propio obviamente se estará interpretando con la versión que se aloje ahí y que no tiene por qué coincidir con la última existente.

    Si se aloja en una librería local ./lib/descartes-min.js se ejecutará con la versión local ahí referenciada.

    Cada opción tiene sus ventajas y es decisión del usuario desarrollador optar por una u otra. Si se utiliza una versión local se tiene garantía que una escena que cuando fue desarrollada era bien interpretada por el intérprete ahí alojado, seguirá interpretándose siempre igual, es decir, no surgirán posibles incompatibilidades hacia atrás como consecuencia de nuevas versiones del intérprete. Si se utiliza un servidor propio se mantendrían todas las escenas que apuntan a él en la misma versión y si se usa el servidor arquimedes se accede siempre a la última que puede incorporar mejoras.

  • Acceso al código de una escena

    El código de una escena es accesible de diferentes maneras:

    • Con un editor de texto plano. Basta abrir el archivo html que contiene la escena y localizar la etiqueta <ajs>. El código de la escena comprende todo el texto comprendido entre «<ajs» y «</ajs>» incluidas dichas etiquetas.
    código HTML

    Código HTML de una página que incluye una escena de DescartesJS editado con un editor de texto plano

    • Con un editor de páginas html. Dado que en la ventana de diseño del editor html no se observará nada relativo a la escena, ni se refleja su posición, el código de la escena ha de localizarse utilizando la ventana de código propia del editor html que se esté usando, en ella ha de buscarse la etiqueta «<ajs>».
    Página abierta con un editor HTML

    Página HTML que contiene una escena de DescartesJS abierta con un editor HTML

    • Con el botón config asociado a cada escena.

    Bien porque la escena presente directamente el botón config, o bien posicionando el ratón sobre ella y pulsando el botón derecho del ratón que abre una ventana auxiliar donde aparece este botón, cuando lo pulsamos se abre una ventana que puede presentar dos aspectos:

    1. El código de la escena con el editor básico, de líneas, integrado y por tanto con el que se puede modificar dicho código y aplicar los cambios que se realicen. Todo se efectúa en el entorno HTML5 con javascript. Este código puede seleccionarse y copiarse.

    Código en el editor básico

    Código de una escena en el Editor de código que incorpora el intérprete descartes-min.js

    2. El código de la escena como un texto que puede seleccionarse y copiarse.

    Código de la escena

    Ventana de código de una escena presentado como texto

    Botón código

    Botón codigo en el editor de configuración del gestor de escenas (versión Java)

  • Código de una escena

    Descripción

    Una escena de Descartes es una estructura de datos que permite describir los objetos que en ella intervienen, sus propiedades asociadas y su interrelación. Esta estructura está descrita mediante un texto, que se inserta en el código HTML de una página web, que comienza con la etiqueta <ajs> y termina con su cierre </ajs> (en la codificación para la versión Java las etiquetas son <applet> y </applet>). Entre ambas aparecen las especificaciones de los objetos de la escena y los valores de sus parámetros. Todo ello constituye el código de una escena.

    Las configuraciones de las escenas de DescartesJS, que se reflejan en el código, suelen construirse o programarse utilizando algún editor. En principio puede haber diversos editores de configuraciones de DescartesJS, su función es ayudar al creador de escenas a construir la estructura de datos de la configuración de una escena sin necesidad de escribirla manualmente.

    Las escenas de DescartesJS tienen dos tipos de características: externas e internas.
    Las características externas se especifican en el encabezado de la configuración, es decir, como parámetros de la etiqueta <ajs> y son las siguientes:

    • Nombre. Se especifica con el parámetro name cuyo valor se especifica mediante una cadena de texto entre comillas dobles.
    • Tamaño. Se especifica con dos parámetros: width y height, cuyos valores son números enteros no negativos que determinan el ancho y el alto de la escena, respectivamente, en píxeles.
    • Código. Se especifica con el parámetro code y sus valores solo pueden ser «Descartes», «Arquimedes» o «Item», según el tipo de escena que se esté especificando.

    Las características internas se dividen en obligatorias y opcionales. Las obligatorias son:

    • Tamaño. Se especifica con la etiqueta <param name=»tamaño» value=»valor»> donde valor son los valores de width y height separados por x.
    • Botones. Se especifica con la etiqueta <param name=»Botones» value=»valor»> donde valor tiene cuatro parámetros:
      • créditos cuyos valores pueden ser ‘‘ o ‘no‘.
      • config cuyos valores pueden ser ‘‘ o ‘no‘.
      • inicio cuyos valores pueden ser ‘sí’ o ‘no‘.
      • limpiar cuyos valores pueden ser ‘‘ o ‘no.

    Una página HTML con una escena, con una configuración mínima, tendría el siguiente código:

    La línea

     <meta http-equiv=»Content-Type» content=»text/html; charset=UTF-8″>

    sirve para indicar que el archivo en el que se guarda este contenido tiene codificación UTF-8, que es la más recomendable para páginas web. Si se escribe manualmente un archivo como éste, es necesario asegurarse de guardarlo en esta codificación, de otra manera los navegadores podían tener dificultades para interpretarlo.

    Lo que aparece antes de la etiqueta <ajs> y después de </ajs> es código HTML que poco tiene que ver con la configuración de la escena, excepto porque la línea que contiene la etiqueta <script> se encarga de informar a la página web que debe utilizar el código JavaScript que se encuentra en el archivo descartes-min.js que es el intérprete del código de la escenas DescartesJS y que en este caso está en la sub-carpeta lib/. Esta dirección se puede cambiar por cualquier otra dirección relativa o absoluta en donde se encuentre tal archivo. La dirección absoluta sugerida por omisión es:

    https://arquimedes.matem.unam.mx/Descartes5/lib/descartes-min.js

    que es donde se publican las últimas versiones de descartes-min.js, pero si el  desarrollador prefiere usar una dirección propia, local o absoluta, para asegurarse de que su aplicación utiliza una versión específica de descartes-min.js, puede hacerlo sin ningún problema.

    La configuración propiamente dicha de esta escena consta de las líneas siguientes:

    y  su reflejo en el navegador queda según se muestra a continuación:

    Los botones que aparecen en las esquinas de la escena pueden hacerse desaparecer poniendo ‘no‘ en vez de ‘si‘ como valor del parámetro correspondiente. La función que cada uno de estos botones realiza al hacer clic sobre ellos, se especifica en la descripción del panel de Botones.

    Para un análisis detallado del código de una escena se puede consultar «Sintaxis del código de una escena«.