Introducción a Guiones GeoGebraScript

De GeoGebra Manual
Saltar a: navegación, buscar

Plantilla:TutorialesPlantilla:Interfaz Cuando se requiere mayor agilidad de la ofrecida por las opciones habituales de GeoGebra o mayor interacción o un particular planteo de escenarios, puede resultar conveniente apelar a los guiones: los guiones de GeoGebra, GeoGebraScript, permiten crear construcciones muy simples de usar y de muy alta interactividad.
Como se desarrollará a continuación, hay modos muy sencillos de elaborar scripts o guiones con GeoGebra, que son programas breves.

Los siguientes son los empleos más habituales de los guiones:

  • Control de respuestas ingresadas en un campo de texto.
  • Creación de nuevas tareas / desafíos tras la pulsación de un botón o por generación aleatoria o establecida dentro de un conjunto previamente diseñado.
  • Inicio de animaciones o de desenvolvimiento de nuevas secciones de la construcción al completarse una tarea.
  • y otras que podrían considerarse...

Lenguajes de guiones

Coexisten en GeoGebra dos lenguajes de guiones: GeoGebraScript y JavaScript. Esta introducción se centrará en GeoGebraScript que emplea la sintaxis de los comandos de GeoGebra y por lo tanto es más sencilla de aprender para quienes están habituados a trabajar con GeoGebra. Las diferencias entre el lenguaje Java de guiones es notoria dado que el JavaScript es mucho más versátil. Aún así, para la mayor parte de las aplicaciones, GeoGebraScript es suficientemente potente.

Nota: Elaborar guiones es una tarea que requiere cierta experiencia ganada en el empleo de GeoGebra. Es conveniente empezar por recorrer previamente otros tutoriales. Las bases de la operación con guiones se establecen a continuación.

Trasfondo: Comandos

Además de las herramientas que permiten realizar construcciones, pueden emplearse comandos en la barra de entrada.

Ejemplo: Con el comando Circunferencia((1, 2), 3) se puede crear una circunferencia de radio 3 y centro en (1, 2).

Incluso cuando se construye con las herramientas de GeoGebra, tras cada objeto creado hay un comando que se pone en evidencia al revisar la pestaña Definición del Cuadro de Propiedades. Por lo que incluso las herramientas pueden considerarse prácticamente como medios para facilitar el ingreso de los comandos.
Todos los comandos disponibles se listan aquí.

Hasta ahora, solo se consideraron los comandos que crean objetos que, pese a ser mayoritarios, no son los únicos: los hay también adecuados para los guiones.

Guiones Básicos

Los guiones son, básicamente, no más ni menos que una secuencia de comandos de GeoGebra ejecutados en una de estas dos situaciones:

  • Clic: tras un clic sobre un objeto.
  • Actualización: cuando un valor o propiedad del objeto cambia. Esto puede suceder si se desplaza un elemento de la construcción, cambia el valor de un deslizador, etc.

Los guiones de GeoGebra están centrados en los objetos por lo que se puede crear uno por cada objeto sea tras un clic y/o desencadenado por su actualización.
Solo los guiones de Java pueden eludir el objeto que les dé cabida.

Para añadir un guiones a un objeto, es preciso dirigirse a la pestaña 'Programas de guion - Scripting del Cuadro de Propiedades Objeto.
Allí se exponen tres pestañas:

  • Al Clic


  • Al Actualizar


  • JavaScript Global

Dejando de lado esta última pestaña, las dos primeras permiten vincular guiones al objeto seleccionado.

Guiones .PNG

Actualización Guionada

Desarrollo de un guion desencadenado por ejemplo, Al ActualizarVer el guion de la construcción completa:

  1. Empezar por abrir una ventana en blanco de GeoGebra 4
  2. Crear un punto "A" y una recta "a". Probar el comando Recta(..) anotado en la Barra de Entrada.
  3. Dirigirse a la pestaña Al Actualizar del panel de guiones descripto del punto A.
  4. Anotar, como guion, estos comandos en inglés (en segunda instancia aparecen en castellano solo a fines ilustrativos):
SetLineThickness(a, Distance(A, a)*2)
SetPointSize(A, Distance(A, xAxis))

En castellano sería:

GrosorLínea(a, Distancia(A, a)*2)
TamañoPunto(A, Distancia(A, EjeX))
  1. Al completar las anotaciones, clic en el botón OK (¡lo que es frecuente saltearse!) y cerrar la caja de diálogo.
  1. Podríamos aventurar qué es lo que este guion va a producir antes de intentarlo, solo por poner a prueba, desplazando el punto A, nuestras presunción!
Bulbgraph.pngAtención:
Si se asignara el guion de actualización al punto, no a la recta ni a otro objeto, se ejecutaría el guion cada vez que se desplace el punto y solo en tal caso.
Esto no necesariamente implicaría que el guion provocase algún efecto sobre el punto en sí.
En la aplicación propuesta, puede notarse que el guion se ha asignado tanto al punto como a la recta, lo que se evidencia al desplazar uno u otra.

Son comandos para guiones los dos que, en inglés, se han empleado - GrosorLínea() y TamañoPunto() -. Conviene revisar la lista de los comandos en guiones para tener una idea de sus posibilidades específicas aunque los guiones no están limitados a su empleo.
Se puede incluir, por ejemplo, f(x) = x^2 o c = Circunferencia((0,0), 5) en un guion.

Nota: Ver, para ilustrar la posibilidad de emplear el comando ZoomAcerca para limpiar rastros que se detalla en el tutorial de Escenarios de Análisis
.

Además de ciertas posibilidades especiales que se describen con más detalle a continuación, ejecutar un guion de GeoGebra provoca el mismo efecto que el ingreso de sus líneas en la Barra de Entrada. Por lo tanto, pasaremos a detallar los objetos especiales que se emplean en los guiones como, específicamente, los campos de texto o los botones.
Además de los comandos adecuados para guiones, el más frecuente es el Si(...), los de tipo lógico y los de listas.

Notas:
  • Cabe enfatizar que los comandos y argumentos empleados en los guiones deben anotarse en inglés
  • Muchos comandos de guiones solo realizan una acción y no establecen una conexión permanente sobre los objetos dependientes.
    Así, por ejemplo, GrosorLínea(a, Distancia(A, a)*2) solo copiará el valor de la Distancia(A,a)*2 durante la ejecución.
    Luego, el valor no cambiará a menos que se ejecute nuevamente el comando o se cambie manualmente el grosor.
    El ejemplo puede crear la impresión de haber creado una conexión pero esto es así solo porque el guion se ejecuta cada vez que el punto se desplaza. En cambio, cuando se opera con un Zoom sobre la Vista Gráfica, nada se modifica.

  • A diferencia de otros lenguajes de programación, no se precisa un punto y coma al terminar cada línea del guion de GeoGebra (GeoGebraScript).

Guiones a Botón

Este tema se desarrolla en la sección correspondiente del tutorial Guiones a Botonera que se invita a consultar.

Botones

Los guiones desencadenados Al clic sobre un botón son idénticos a los de clic sobre cualquier otro objeto pero... los botones tienen ya una tradición como impulsores de un efecto y por eso parece más natural emplearlos en estos casos. Los botones se crean empleando la herramienta Tool Insert Button.gif Botón.

Cajas de Entrada

Las cajas de entrada también se denominan campos de texto se vinculan a la herramienta de Tool Insert Textfield.gif Casilla de Entrada.
Son probablemente los objetos más poderosos de GeoGebra.
Permiten el ingreso de texto, números, funciones y cualquier otra entrada que se podría anotar manualmente, para convertirla de texto a objeto de GeoGebra.

Hay muchas maneras de usar las cajas de entrada en las construcciones: asociadas a objetos y a un guion Al clic o procesándolas a posteriori usando otro objeto (por ejemplo, un botón) como se explicará a continuación.

Cajas de Entrada Vinculadas

Son cajas vinculadas a un objeto de GeoGebra existente: esto implica que exponen el valor del objeto que, a su vez, se modifica cuando se anota otro. Esto permite cambiar, por ejemplo, la definición de una función o cualquier valor numérico sin emplear deslizadores.
Básicamente, son cajas de entrada que pueden cambiar un simple objeto sin riesgos de cambios dramáticos en el resto de una construcción o de la hoja dinámica en general.

Cajas Vinculadas en Construcciones

El siguiente ejemplo ilustra cómo pueden crearse cajas vinculadas en una construcciónVer la ilustración:

  1. Abrir una ventana en blanco de GeoGebra
  2. Ingresar una función como, por ejemplo. f(x) = x^2, en la Barra de Entrada
  3. Seleccionar la herramienta Tool Insert Textfield.gif Casilla de Entrada (se encuentra en la penúltima caja de la barra).
  4. Un clic en cualquier lugar de la hoja dinámica desplegará una caja de diálogo en la que se puede ingresar "f(x) =" y como Objeto Vinculado, seleccionar la función f.
  5. Al desplazar el gráfico, el campo de texto automáticamente expondrá la nueva definición de la función. También se puede modificar el contenido del campo de texto para ver cómo cambia la definición de la función y su gráfico.
Nota: Tal como se señaló, además de funciones, se puede modificar cualquier objeto que se desee, sean valores numéricos o contenidos de texto.

Cajas de Entrada con Guiones Al Clic

En este ejemplo, ya no se vinculará la caja a otro objeto sino que se la empleará en un guion Al Clic para aplicar su valor a otros objetos,
Será muy similar al primer ejemplo.
La novedad residirá en aprender cómo usar el valor del campo de texto en el guion-script.

Caja de Entrada de Texto con guion Al clic

La construcciónVer GeoGebra se desarrolla siguiendo los siguientes pasos:

  1. Abrir una ventana en blanco de GeoGebra
  2. Crear un punto A y una recta a.
  3. Seleccionar la herramienta de la caja de entrada y con un clic en cualquier posición de la Vista Gráfica y en la caja emergente, anotar Medida: dejando en blanco el campo del Objeto Vinculado.
  4. Ir a la pestaña Al clic del guion de la nueva caja (siguiendo las instrucciones previas).
  5. Ingresar el siguiente guion:
SetPointSize(A, %0/2)
SetLineThickness(a, %0)

En castellano sería:

TamañoPunto(A, %0/2)
GrosorLínea(a, %0)
  1. Nuevamente clic en OK y cerrar la caja.
  1. Ahora, al ingresar un nuevo valor en la caja y pulsar Intro (Enter en algunos teclados), queda ilustrado lo que se desencadena.
Bulbgraph.pngAtención: De no ingresarse un valor en la caja de entrada, se desplegará un mensaje de error en inglés haciendo mención a la medida asignada para el TamañoPunto.

Como puede apreciarse, el %0 efectivamente contiene el valor de la caja de entrada.


Medidas del Punto y la Recta

En la aplicación se puede ingresar un valor numérico en el campo de entrada de Medida para apreciar el efecto sobre el grosor del trazo de la recta y el tamaño de la representación del punto.

Para Desarrollar

A partir de cierto conocimiento de guiones, es posible preparar:

  • Instructivos diversos para principiantes
  • Ejemplos más concretos y enlaces a archivos de GeoGebra

Guiones - Ejemplos

Botones: Crecientes / Decrecientes

En lugar de deslizadores para exponer una explicación paso a paso, se pueden usar botones.

Ejemplo:
  • Crear un deslizador entero, denominado Pasos.
  • Crear un botón usando la correspondiente herramienta
  • Anotar como sub-título lo que será el rótulo visible del botón
  • Ingresar el guion Valor(Pasos, Pasos + 1) o simplemente Pasos = Pasos + 1
Bulbgraph.pngAtención:

Si se pretende que opere en forma decreciente, en lugar de "+" debe anotarse "-".

Para cambiar la medida de los pasos, en lugar de 1 se anotará el valor requerido.

Para volver a iniciar la secuencia de crecimiento al llegar al tope que, imaginemos fuera de 30, bastaría con anotar el guion como:
Pasos = Pasos + Si(Pasos < 30, 1, -29)

Notas:

El comando Pasos = Pasos + 1 solo es válido, aún dentro de un guion, para números libres. De referir a dependientes, se provocaría un mensaje de error por definición circular

Ver el Tutorial Optando a Botonera

Articulando Guiones y Campos de Entrada

En la siguiente aplicación aparece en acción la potencia conjunta de los campos de entrada y los guiones para tantear, explorar y validar resoluciones triangulares.
Es notorio que pueden deslizarse los puntos para tantear planteos y soluciones y/o establecer los valores directamente en cada campo de entrada para que, clic mediante, asignarle a los lados valores precisos.




© 2020 International GeoGebra Institute