• Macros en el editor de configuración Java y en el intérprete Java

    ¿Qué es una macro?

    Una macro es un archivo de texto que contiene parte del código de una escena de Descartes y que interpretado por Descartes actúa como un gráfico en una escena.

    Podemos distinguir dos tipos de macros: Macros del Sistema o Macros de usuario. Los primeros son macros que previamente se han construido y que están incorporados al código del intérprete de Descartes en Java Descartes5.jar, y los segundo son macros que puede definir el usuario y que no están integrados en el intérprete.

    objetos cartesianos debe colocarse en un sitio específico. Hay dos formas posibles de acomodar las macros: con direccionamiento general o con direccionamiento particular.

    1) Macros del Sistema

    Los macros del sistema tienen una organización interna en diversos subdirectorios y para su localización es necesario aportar el direccionamiento adecuado. Este direccionamiento es aportado por el editor de configuración de manera automática y ha de respetarse para que pueda ser accesible. En la figura siguiente puede observarse a un primer nivel el directorio macros, en un segundo nivel g2d y g3d (macros de gráficos 2d y 3d respectivamente) y un tercer nivel y sucesivos donde se agrupan los macros por su temática. Para un detalle completo de todos estos macros puede consultarse el artículo Relación de macros del sistema.

    Organización interna de los macros del sistema

    Organización interna de los macros del sistema

    Dado que los macros 2d están ubicados en el subdirectorio macros/g2d/ y los 3d en macros/g3d/ el editor de configuración presupone este direccionamiento y sólo aporta como parámetro en la escena el direccionamiento relativo a esos dos subdirectorios anteriores.

    Así pues el macro masa que está ubicado en macros/g2d/dinamica/masa en el parámetro expresión del código de la escena aparecerá referenciado como dinamica/masa.

    Todos estos macros son públicos y pueden ser utilizados por cualquier desarrollador de escenas.

    2) Macros de usuario o particulares

    Un usuario puede crear sus macros y ubicarlos en la misma carpeta donde se encuentra la página que contiene a la escena o en subcarpetas de ella. Para usarlos tendrá que indicar el direccionamiento adecuado para que el intérprete de Descartes pueda acceder a ese fichero y leer su contenido.

    ¿Qué contenido tiene una macro?

    Un archivo de texto que es una macro contiene varias líneas. La primera especifica si es de dos o tres dimensiones: tipo_de_macro=R2tipo_de_macro=R3. Luego vienen líneas que definen los objetos auxiliares del macro y, finalmente, las líneas que definen los gráficos del macro. Las líneas que definen auxiliares y gráficos son exactamente las que aparecen al pulsar las etiquetas azules Auxiliar o Gráfico en los respectivos paneles de configuración.

    Por ejemplo el contenido del archivo de texto que constituye el macro dinamica/masa que es uno de los utilizados en la segunda escena de arriba es éste:

    Nota: Cuando una escena se transforma en macro sólo se traspasan al macro los auxiliares y los gráficos. Los controles, la animación y las demás partes de una escena no pasan al macro.

    ¿Cómo utiliza los macros un autor de escenas de Descartes?

    La utilización de los macros para configurar escenas es como la de cualquier otro gráfico. Si se desea usar un macro del sistema, bastará buscarlo recurriendo a los menús que se encuentran en el panel de configuración de macros y seleccionarlo. Si se desea usar un macro que no es del sistema, es decir que no está registrado, entonces deberá ser un macro con direccionamiento particular y será necesario escribir su nombre explícitamente, incluyendo las posibles subcarpetas a partir desde donde esté la página web que contiene la escena.

    Todos los macros se pueden girar o trasladar utilizando los campos rotini y posini que aparecen en sus paneles de configuración. He aquí el panel de configuración de un macro de dos dimensiones:

    macro1

    y el de un macro de tres dimensiones:

    macro2

    Es importante poner un nombre diferente para cada instancia de cada macro que se utilice en una escena. Los auxiliares del macro (constantesvariablesvectoresfunciones y algoritmos) pueden utilizarse en la escena precediendo la llamada a uno de ellos por el nombre de la instancia del macro y un punto. Por ejemplo la masa del objeto definido por el macro dinamica/masa de nombre M es M.m

    ¿Cómo podemos conocer cuáles son los parámetros de un macro del sistema?

    Para obtener esta información basta pulsar el botón Aux que se encuentra a la derecha del campo de texto y de los menús desplegables que se usan para poner la trayectoria y el nombre del macro. Al hacerlo se abre una ventana como esta:

    macro3

    en la que aparecen todos los auxiliares con sus valores iniciales. Si se trata de algoritmos o de funciones con algoritmo sólamente aparece la palabra algoritmo entre paréntesis. En el caso de constantes y algoritmos que no son funciones, a la derecha aparece una-sola-vez o siempre, indicando cuándo se evalúa. A las constantes que se evalúan siempre no podrá modificarlas el usuario del macro desde una aplicación. En principio las funciones algorítmicas y los algoritmos son para ser usados desde las aplicaciones, tampoco deberían sobreescribirse en las aplicaciones, pues representan funcionalidad propia del macro. En cambio todas las variables que se evalúan una sola vez y las funciones no algorítmicas pueden sobreescribirse, siempre y cuando el autor de la aplicación entienda su significado.

    ¿Cómo puede saberse el significado de los auxiliares de un macro?

    En el caso de las macros del sistema, pulsando el botón Doc se abre la página web donde está la escena que define la macro, y la misma página en general debe tener una o varias escenas que muestran cómo se usa dicho macro, e ilustran el significado de cada uno de sus auxiliares. (El comentario anterior no tiene validez en la versión5 y se mantiene por si el desarrollador de escenas quiere aplicarlo a sus macros particulares, según se detalla en el siguiente párrafo)

    En el caso de los macros particulares, será responsabilidad del autor ofrecer esta documentación y deberá hacerlo en una página con el mismo nombre y dirección del macro, pero con extensión html o htm. Allí deberá poner la escena que usó para generar el macro y algún ejemplo de cómo puede utilizarse.

    ¿Qué escenas pueden convertirse en macros?

    Para que una escena pueda convertirse en un macro debe satisfacer las siguientes condiciones:

    1. Tener un solo espacio.
    2. No debe contener macros.

    Algunos gráficos como las ecuacionessucesionesrellenos e imágenes no son convenientes para utilizarse en un macro si se desea que éste pueda girarse y transladarse usando rotini y posini.

    ¿Cómo se convierte una escena en un macro?

    Es muy fácil. Cuando una escena tiene un solo espacio, se habilita el botón macro, que aparece arriba a la derecha de la ventana de edición de configuraciones, como puede verse en la imagen del panel de configuración de la escena donde se crearon los ejes.

    macro4

    Al pulsar este botón aparece otra ventana con el macro, es decir, con el texto del macro.

    macro5

    Para crear la macro basta copiar ese texto y guardarlo en un archivo de texto con cualquier nombre. Ése será el nombre de la macro y el directorio donde lo guardó será su trayectoria. Dicho archivo deberá colocarse como se indica arriba según vaya a tener direccionamiento general o particular. Hecho esto la nueva macro ya puede usarse en cualquier escena.

    Nota: Recuerde que cuando una escena se transforma en macro sólo se traspasan a la macro los auxiliares y los gráficos. Los controles, la animación y las demás partes de una escena no pasan al macro.

    Nota: A pesar de que el botón macro se habilita siempre que hay un solo espacio en la escena, esto no garantiza que la macro resultante sea un macro auténtico. Para ello es necesario asegurarse que no tiene macros y si es de dos dimensiones y se desea que gire con rotini y se translade con posini, tampoco debe tener ecuacionessucesiones,rellenos ni imágenes.

    ¿Qué ventajas y limitaciones tienen las macros como objetos gráficos?

    Las macros pueden trasladarse y girarse mediante unos atributos específicos que aparecen en su panel de configuración. Esto, junto con la posibilidad de tener parámetros y algoritmos propios, les da gran flexibilidad y aplicabilidad.

    Una  de sus limitaciones sin embargo, es que no se les pueden cambiar los colores, a menos que éstos se definan a través de sus cantidades de rojo, verde y azul y éstas se traten como parámetros del macro. Otra es que las macros no cuentan con controles gráficos propios.

    ¿Qué utilidad tienen las macros?

    En principio las macros fueron ideados para crear bancos de objetos gráficos específicos para un área de aplicación. Por ejemplo una librería para circuitos (eléctricos) como la que actualmente existe en el banco de macros del sistema.

    Cada autor puede desarrollar las macros que le convenga, ya sea para ahorrarse trabajo al observar que utiliza varias veces la misma construcción, para uniformizar la presentación de varias escenas o para organizar mejor su trabajo. Como ejemplos de aplicación de macros pueden verse Máquinas Térmicas y Espejos Esfericos , en especial se recomienda mirar y estudiar los ejemplos del macro dinamica/masa por ser, desde el punto de vista gráfico, uno muy sencillo, pero de una gran funcionalidad que hereda gracias a sus auxiliares.

  • Opción de menú «Insertar» en el gestor de escenas

    Para agregar o insertar escenas en la página web, hay que utilizar la opción del menú Insertar.

    Agregar e insertar escenas
    Agregar e insertar escenas

    Se pueden agregar o insertar escenas nuevas de Descartes, de Descartes5, un Discurso o un Ítem, también se pueden agregar e insertar escenas del sistema, es decir, escenas que han sido previamente guardadas en un archivo. Y finalmente se pueden agregar o insertar escenas que previamente han sido copiadas al portapapeles (ver en la opción Editar: copiar y pegar escenas ).

    • Agregar pone la nueva escena después de todas las que hay en la página.
    • Insertar pone la escena antes de la que esté seleccionada.

    Para seleccionar una escena hay que hacer clic sobre el botón negro marcado con una S que aparece a la derecha de cada escena.

    Para insertar escenas en el modo de Mostrar HTML hay que colocar el cursor en el punto del código html donde se quiere hacer la inserción. Al hacer esto, se activarán también las opciones de Insertar párrafo e Insertar párrafo con escena en el menú Insertar.

    • Insertar escena sirve para insertar una escena dentro de en un párrafo o tabla ya existente. Si se escoge esta opción, el cursor tendrá que colocarse dentro del párrafo (o la tabla) en el cual se pretende insertar, o sea en algún sitio entre <p> y </p> (o en algún elemento de la tabla).
    • Insertar párrafo con escena insertará en el lugar donde está el cursor una nueva escena dentro de un nuevo párrafo con alineación centrada; por tanto, conviene colocar el cursor en el texto del código html pero fuera de un párrafo (entre un </p> y el siguiente <p>).

    Las escenas nuevas aparecen en forma gráfica como escenas vacías con red cartesiana, y son totalmente operativas. Por tanto pueden editarse como de costumbre, dando un doble clic o un clic derecho con el cursor colocado sobre la escena para abrir la ventana de edición o de configuración. Otra forma de abrir la ventana del editor de configuración es darle una clic al botón «E» que aparece en la pantalla en el lado superior derecho.

    • Insertar párrafo sirve para insertar un nuevo párrafo en el sitio donde se ubica el cursor. Esta operación simplemente agrega el código html de apertura y cierre de un párrafo (<p> y </p>), y se podría incluso hacer manualmente.
  • Opción de menú «Editar» en el gestor de escenas

    Esta opción permite realizar todo lo necesario para llevar a buen término la edición tanto del código html como de las escenas.

    Al abrir una página con varias escenas, si la opción Html está en ocultar, aparecerán una tras de otra –por ejemplo, en la figura siguiente podemos observar dos escenas– y si está activa la opción Html las observaremos con bloques de código.

    Página con dos escenas
    Página con dos escenas

    Las escenas que aparecen son editables, es decir, haciendo un doble clic sobre alguna de ellas se abre el editor de configuración de la escena, o bien pulsando el botón config ya sea sobre la escena (si tal botón aparece en ella) o sobre la ventana exterior (que aparece tras un clic derecho sobre cualquier sitio de la escena). Los cambios que se hagan a la configuración y que se hayan aplicado, pasarán a formar parte de la página y por tanto se guardarán cuando ésta se guarde en el disco. Además, si durante la edición se cambia el tamaño de una escena, la página se refresca automáticamente y la escena aparece con su nuevo tamaño.

    El resto del código html puede editarse manualmente en formato de texto. Por tanto, es posible escribir todo el contenido de la página que se está creando, incluso el texto, dentro del Gestor. Sin embargo, para hacer mejoras de estilo del texto, es recomendable usar cualquier editor de html.

    Cuando se crea una página nueva (Archivo->Nuevo) aparece una escena básica, embebida en la estructura elemental de una página web, con los códigos de apertura, a modo de paréntesis de apertura (etiquetas), <html>, <head> y <body>, y sus respectivos cierres en orden inverso: </body>, </head> y</html>. También aparece el título de la página (<title>TITULO</title>) y un solo párrafo vacío alineado a la izquierda (<p> y </p>).

    Archivo nuevo
    Archivo nuevo

    Sin necesidad de profundizar en el lenguaje html puede observarse que los códigos que utiliza este lenguaje son de texto (caracteres legibles), que las secciones que lo forman están etiquetadas y que éstas, tienen la forma <nombre> y </nombre>. No es necesario usar esto para trabajar con Descartes, sin embargo, puede ayudar a comprender lo que ocurre en algunas ocasiones.

    En esta opción de menú encontramos las posibilidades reflejadas a continuación:

    Opción "Editar"
    Opción «Editar»
    • Cortar, copiar y pegar escenas.  A la derecha de cada escena se encuentra un botón negro con una S, y al pulsarlo quedará seleccionada la escena y se dibujará a su alrededor un marco rojo. En el menú Editar se activarán las siguientes opciones:
      • Cortar escena, para eliminar una escena, pero guardándola en el portapapeles para poderla pegar en otro sitio (se denomina portapapeles a una zona de memoria donde se guarda la información que se corta o se copia, se guarda la escena).
      • Copiar escena, para guardar un duplicado de la escena seleccionada en el portapapeles.
      • Pegar escena, para insertar en el lugar donde esté el cursor la escena que haya en el portapapeles, que será la última cortada o copiada.
      • Eliminar escena, para borrar la escena seleccionada de la página.

    Esas mismas operaciones pueden realizarse con las combinaciones de teclas acostumbradas: Ctrl-X para cortarla, Ctrl-C para copiarla, Crtl-V para pegarla y Supr (o Del) para suprimirla. Y como ya se ha indicado, la escena más recientemente copiada o cortada permanece en el portapapeles y se puede insertar en la página mediante las opciones de Insertar escena e Insertar párrafo con escena del menú Editar y eligiendo la sub-opción del portapapeles.

    Sin embargo, para cortar, copiar, pegar o eliminar un trozo del código html, se trabaja directamente sobre el texto usando las combinaciones de teclas Ctrl-X, Ctrl-C, Crtl-V y Supr (o Del); no es posible hacerlo usando el menú.

    •  Deshacer y rehacer.
      • Si se pulsa la opción de deshacer en el menú Editar, se anulará el último cambio que se efectuó en la página. Se puede deshacer repetidamente hasta llegar a la situación inicial cuando se abrió o creó la página.
      • Si se pulsa rehacer, se revoca el último deshacer (o sea, vuelve a efectuar la acción deshecha). También se puede rehacer repetidamente hasta llegar a la última versión de la página, es decir la que se estaba mostrando cuando se comenzó a pulsar deshacer.
  • Opción menú «Opciones» en el gestor de escenas

    El gestor de escenas genera un código propio que recoge toda la información relativa a los objetos que el editor o desarrollador de una escena ha incluido en la misma. Ese código necesita de un intérprete que aporte al navegador de páginas web la información necesaria para que muestre la escena, los objetos en ella incluidos y permita la interactividad. Consecuentemente hay que indicar al navegador dónde se ubica el intérprete del código y esto se realiza mediante esta opción de menú. Descartes dispone de dos intérpretes, uno en Java y otro en javascript (JS).

    Opción de menú "Opciones"
    Opción de menú: «Opciones»

    Esta opción de menú es un mero selector mediante el que se establece el estado que ha de aplicarse en el momento que se guarde el archivo html que se esté editando.  En cualquier momento, el usuario puede seleccionar una de las seis opciones posibles y ésta queda reflejada en la barra de estado del gestor, la cual está ubicada en la parte inferior de la ventana (ver figura siguiente).  La opción por defecto es «Librería portable->sólo para JS»; no obstante cuando se abre un archivo que contiene alguna escena se detecta la opción con la que fue grabada y queda activada. La opción que está
    seleccionada en cada momento se refleja en la zona de mensajes de la parte inferior del gestor de escenas.

    Opciones reflejadas en la barra de estado
    Opciones reflejadas en la barra de estado

    Se presentan tres posibilidades:

    • Librería en Internet que indica que para localizar el intérprete se accederá a un sitio web, que por defecto es: https://arquimedes.matem.unam.mx/Descartes5/lib/.
    • Librería portable que señala que el intérprete se ubique en una subcarpeta denominada lib al nivel del archivo html que se está editando (./lib) y es el propio editor el que crea esa carpeta y copia el intérprete o intérpretes en ella.
    • Librería de proyecto que marca que el intérprete se direccione y ubique en una carpeta lib un nivel por encima al correspondiente al archivo que se está editando (../lib).

    Y cada una de las opciones anteriores cuenta con dos subopciones:

    • para Java y JS que direcciona y/o ubica ambos intérpretes en el lugar indicado en la opción anterior y a su vez crea dos archivos html con el nombre que se indicó al editar o que se indique al guardar. Por ejemplo si el archivo que se está editando se denomina suma.html al guardar se actualizará este archivo para que sea interpretado con Java y suma_JS.html para la versión de javascript (añade al nombre el sufijo _JS).
    • sólo para JS que direcciona y/o ubica sólo el intérprete de javascript en un único archivo de igual nombre al editado, es decir, en el ejemplo puesto antes sería suma.html.

     

    La opción Librería portable tiene como objetivo crear un objeto desagregado, es decir que si se copia toda la carpeta que lo contiene se puede trasladar a cualquier otro lugar del ordenador u otro ordenador y seguirá funcionando igual (ese es el significado usualmente empleado para portable). Esta distribución se ha utilizado por ejemplo en el desarrollo de las misceláneas. Para la opción JS la línea incluida es:

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

    La opción de librería de proyecto busca compartir un único archivo del intérprete para un conjunto de páginas ubicadas a diferente nivel. Así en la imagen siguiente podemos ver un proyecto que utiliza diferentes escenas, cada una de ellas ubicadas en una carpeta y una única carpeta lib compartida por ellas. Esta distribución se ha utilizado en el desarrollo de objetos, por ejemplo, en CanalsPizarra interactiva y suele ser una estructura de archivos muy útil. De ahí que se haya contemplado en el gestor de escenas esta opción.

    Ubicación del intérprete en la opción proyecto

    Ubicación del intérprete en la opción proyecto

    Para la opción DescartesJS la línea incluida en la página de cada escena es:

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

    La opción librería en internet direcciona a Descartes5.jar y a descartes-min.js al directorio de distribución del servidor arquimedes. Esta opción es la que se usado en las escenas incluidas en esta documentación con el objeto de que usen siempre la última versión y consecuentemente si en algún momento en una nueva versión se produjese un error, un funcionamiento inadecuado o un cambio de comportamiento, la documentación sirva de fuente de detección y localización del mismo. Para DescartesJS se incluye:

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

     

  • Opción de menú «Archivo» en el gestor de escenas

    Para abrir, cerrar, crear y guardar nuevos archivos o páginas se usa el menú Archivo. Al abrir el Gestor de escenas, sólo queda activado (iluminado) este menú, y se pueden seleccionar las siguientes opciones:

    Menú archivo en el gestor de escenas
    Menú archivo en el gestor de escenas
    • Nuevo se debe usar para crear una nueva página.  Ésta incluye una codificación interna básica y mínima de una página HTML y presenta en el editor una escena con algunos elementos básicos.
    • Abrir sirve para abrir cualquier página html que esté accesible en el ordenador, generalmente en el disco duro. Si se selecciona esta opción, aparecerá la ventana, usual en los diferentes sistemas operativos, Abrir html, que permite localizar la página deseada en el sistema de archivos (dispositivo, carpeta, archivo).
    • Cerrar sirve para cerrar la página sin salir del Gestor. Si en el momento de pulsar esta opción está abierta una página html en la cual hay cambios que aún no se han guardado, el Gestor de escenas pregunta si se desean guardar los cambios antes de cerrar.
    • Actualizar se usará para volver a leer en el disco el archivo que contiene la página que se está editando. Es imprescindible usar esta opción si se han hecho y guardado modificaciones en la misma página con otro editor, para que el programa trabaje con la página modificada. Si en el momento de pulsar esta opción hay cambios que aún no se han guardado, el Gestor de escenas pregunta si se desean guardar los cambios antes de actualizar; se recomienda usar la opción antes de hacer ningún cambio para evitar pérdida de información o después de hacer cambios que han resultado erróneos, para eliminarlos y volver a la situación inicial o más bien a la última en la que se había guardado el archivo.
    • Guardar almacena en el disco todos lo cambios realizados (texto y escenas) en la página que se está editando, en el mismo archivo que se creó o abrió.
    • Guardar como sirve también para almacenar la página que se está editando, pero se usa para hacerlo en otro archivo, con otro nombre y/o en otro sitio.
    • Exportar a png sirve para guardar una imagen en formato png de la (primera) escena que se está editando en el gestor. Por supuesto esta imagen no tendrá la funcionalidad de la escena, pero se verá exactamente igual a ella, por lo que puede servir para hacer documentaciones de las unidades didácticas o para crear presentaciones estáticas de contenidos.
    • Exportar a jpg sirve para guardar una imagen en formato jpg de la (primera) escena que se está editando en el gestor. Igual que en la opción anterior, la imagen no tendrá la funcionalidad de la escena, pero se verá igual que ella.
    • Salir se usará para cerrar la aplicación. También en esta opción, como en Cerrar, se pregunta si se desean guardar los cambios, en el caso de que se hayan hecho y no se hayan guardado aún.

    Cuando se encuentra una página html abierta en el Gestor, también se activarán las siguientes opciones CerrarGuardar y Guardar como en el menú Archivo.

    Para una adecuada organización de los archivos que editemos con el  gestor se aconseja crear una carpeta que podemos denominar, por ejemplo, «proyectos» y dentro de ella crear subcarpetas para cada uno de estos proyectos.

    Estructura de archivos
    Estructura de archivos