• Ejemplos con “docBase”

    En las escenas que utilizan imágenes, macros y/o ficheros puede utilizarse en el código de la escena el parámetro “docBase” con objeto de localizar estos archivos (ver detalle en el artículo Copiar y pegar escenas en html). Aquí podemos observar diferentes ejemplos de esta utilidad con cada uno de los tipos de archivo antes mencionado:

    1. Acceso a imágenes y archivos de audio

    2. Acceso a macros

    3. Acceso a ficheros de manera estática o dinámica con _GetValues_ 

    4. Acceso a ficheros de manera dinámica

    5. Acceso a matrices con _GetValues_  y con _GetMatrix_

    6. Acceso a matrices de manera dinámica

     

    Puede descargar las páginas con los ejemplo anteriores desde este enlace.

  • Relación de macros del sistema

    Hay que documentar los macros del sistema (antiguo banco de macros en documentación v4).

    Para conocer el código de una macro del sistema puede acceder al servidor de distribución de Descartes:
    En ese directorio tiene un subdirectorio macros en el que puede navegar y también el fichero macros.zip si desea descargarlo y usarlas en local. En ambos puede observar cuatro carpetas: g2d, g3d, g2d_jar y g3d_jar. Las macros incluidas en las carpetas con sufijo _jar son las que están incluidas en el archivo Descartes.jar del editor de configuración y aunque algunas coinciden en el nombre con las incluidas en las otras carpetas que no tienen sufijo su contenido no siempre es coincidente. Es necesario abordar un proceso de comparación y depuración.
  • Macros en el intérprete DescartesJS

    El intérprete de DescartesJS reconoce y ejecuta las macros publicadas en un servidor, accediendo en línea; sin embargo, cuando ejecutamos una escena en nuestro equipo (en local), el intérprete no reconoce las macros. Esto es una limitación propia de JavaScript en relación a la lectura de ficheros en local.

    Por ejemplo las dos escenas siguientes ha de verlas adecuadamente desde nuestro blog. Son escenas que utilizan una macro de usuario denominada sombras.txt cuyo objetivo es dibujar un par de sombras en las esquinas de la escena, y hay un control que cambia la trasparencia de esa sombra. Sin embargo si descarga esas escenas y las ejecuta en local en la primera no observará las sombras y en la segunda sí.

     escena6.html  escena7.html

    Las escenas anteriores puede descargarlas desde este enlace e identificar el archivo correspondiente con el nombre indicado

    ¿Cómo podemos ejecutar los macros en local?

    Para poder ejecutar una macro en local es necesario que el código de ésta esté incorporado en el código html de la página que contiene la escena que llama a esa macro. Para ello, es necesario incorporar un “script” en ese archivo html siguiendo el siguiente esquema:


    <script type=”descartes/macro” id=”direccionamiento del macro usado en la escena“>

    Contenido del fichero de la macro, es decir, la macro en sí

    </script>


    En el siguiente vídeo, puedes observar lo que acontece y el procedimiento para subsanarlo:

     

    Para conocer el código de una macro del sistema puede acceder al servidor de distribución de Descartes:
    En ese directorio tiene un subdirectorio macros en el que puede navegar y también el fichero macros.zip si desea descargarlo y usarlas en local. En ambos puede observar cuatro carpetas: g2d, g3d, g2d_jar y g3d_jar. Las macros incluidas en las carpetas con sufijo _jar son las que están incluidas en el archivo Descartes.jar del editor de configuración y aunque algunas coinciden en el nombre con las incluidas en las otras carpetas que no tienen sufijo su contenido no siempre es coincidente. Es necesario abordar un proceso de comparación y depuración.

     

    Hemos de indicar que en las macros del sistema podemos detectar algunas en las que en una misma línea aparecen descritos dos objetos. Por ejemplo:

    id=’azul’ expresión=’0′ evaluar=’una-sola-vez’ constante=’si’ tipo=’segmento’ expresión='(0,0,0)(a,b,c)’ color='(rojo,verde,azul)’ ancho=’3′

    Esto no presenta ningún problema en el intérprete Java, pero sí para DescartesJS, pues éste espera una definición por línea y tienen prioridad las definiciones que tienen el atributo tipo. Es un detalle a observar si detectamos que alguna macro no nos funciona. Si detecta esta circunstancia, por favor, haga un comentario para proceder a su arreglo. Y téngalo también presente en sus macros de usuario.
  • 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.

  • Macros

    Las macros  (de macroinstrucción) son objetos gráficos compuestos y pueden ser de dos o tres dimensiones. Muchas escenas que tienen un solo espacio pueden generar un macro y convertirse así en un objeto gráfico compuesto con posibilidad de usarse en otras escenas. Por ejemplo, los ejes coordenados que aparecen en la escena izquierda, están definidos a partir de objetos gráficos básicos, mientras que los de la escena de la derecha, son un solo objeto gráfico, es decir, una macro.

     escena1.html escena2.html

    Las escenas anteriores y todas las de este artículo puede descargarlas desde este enlace e identificar el archivo correspondiente con el nombre indicado

    Las macros pueden tener parámetros que sirven para modificar su aspecto y su comportamiento. Por ejemplo, los controles numéricos que hay en la escena derecha actúan sobre los parámetros del macro, que, en este caso, son longitud y punta, y representan la longitud de cada eje y el tamaño de la punta de flecha que hay en cada uno.

    Pero las macros además pueden tener un conjunto de funciones y algoritmos propios que les otorgan una funcionalidad predefinida y/o modificable. Por ejemplo la siguiente escena utiliza dos macros (dinamica/resorte y dinamica/masa) para crear de una manera muy sencilla una escena con mucha funcionalidad.

    escena3.html

    El propósito de este artículo es describir qué soncómo se crean y cómo se usan las macros. Y distinguiremos dos entornos:

    1. Editor de configuración e intérprete en Java
    2. Intérprete DescartesJS