Sobre guiones (guion-script)

De GeoGebra Manual
Saltar a: navegación, buscar







Programa (guion-script)

Guiones: Script y Javascript

GeoGebra respalda sendos lenguajes de programación de guiones (scripting) -- GGBScript y Javascript. Un "script" es un guion de una secuencia de acciones que puede desencadenarse con:

  • un clic o actualización de un objeto particular
  • la apertura de un archivo (en caso de Javascript)
  • vías pertinentes tendientes a Javascript (ver Referencia: JavaScript)

Se puede fijar una vía a los guiones señalados a través de la pestaña correspondiente del Cuadro de Propiedades de un objeto.

Bulbgraph.pngAtención: Algunos comandos solo pueden emplearse en el marco de un guion o script: este repertorio puede revisarse en la página correspondiente.


GGBScript

Pueden crearse guiones como secuencia de comandos de GeoGebra.

Ejemplo:
  • a es un entero cuyo valor lo establece un deslizador con un rango de 1 a 3 con un Incremento de 1.
  • Lista_1={"rojo","verde","azul"}
  • en la pestaña Programa de guion - Secripting de Propiedades de a, se establece en "Al Actualizar" Color(a, Elemento(Lista_1, a)) y se selecciona "guion (Script) GeoGebra"
  • al desplazar el deslizador, se modifica su color.

Racional: Cada vez que se desplaza el deslizador, se efectúa una actualización de tal objeto,
Esto desencadena que el guion o script al que está asociado registre cuál es el valor de "a" para pintar "a" del correspondiente color de la lista.

Nota: Ver el tutorial de Escenarios de Análisis para ilustrar la posibilidad de emplear el comando ZoomAcerca a fin de limpiar rastros.

Guiones a Botón

Es habitual establecer un guion que se desencadene Al clic de un botón.

Ejemplo:
A continuación se copia el contenido de un guion en que Al clic se controla la abscisa de un punto animado sobre una semicircunferencia y acorde al resultado establecen las coordenadas del punto libre A y su color (azul o verde oscuro):

Si( Resto( round(10 x(B)) , 2) == 0, Coordenadas(A, y(B), 0), Coordenadas(A, x(B), 1))

Si( Resto( round(10 x(B)) , 2) == 0, Colores(A, "verde oscuro"), Colores((A, "azul" ))

JavaScript

JavaScript es un lenguaje de programación empleado en diversas plataformas de tecnología de Internet. A diferencia del Script de GeoGebra, los comandos en Javascript no requieren una ejecución secuencial dado que es posible controlar su desenvolvimiento (con condiciones fijadas por cada si/if, mientras/while, para/for). Un interesante tutorial genérico sobre JavaScript aparece en ingles en developer.mozilla.org.
En GeoGebra, pueden emplearse comandos especiales de JavaScript que permiten cambiar cualquier construcción. Estos métodos corresponden al objeto ggbApplet, lo que implica que se los puede convocar como ggbApplet.nombre_del_método(parámetro, .. , parámetro). Una lista completa de los comandos disponibles puede encontrarse en Referencia:JavaScript.

Ejemplo:
for(var i =0;i<10;i++) 
   ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
Este guion (script) crea 10 puntos A0 a A9 dispuestos en coordenadas aleatorias.

GeoGebra contiene su propia usina de JavaScript. Cuando se abre un Cuadro de Exportación de un boceto GGB, se puede elegir si emplear este motor' o la contenida en el explorador de aplicaciones applets.
Para editar JavaScript en una página HTML, la variable ggbApplet no será inicializada automáticamente sino que debe hacérselo primero ggbApplet=document.applets[0];.

Nota: La interfaz JavaScript de GeoGebra es de particular interés para quienes tienen cierta experiencia en la edición en HTML.

Para generar una hoja dinámica (web) y aumentar su interactividad, los applets de GeoGebra ofrecen una interfaz JavaScript.
Por ejemplo, se puede crear un botón para generar aleatoriamente nuevas configuraciones de una construcción dinámica.

Se pueden consultar los documentos Applets de GeoGebra Applets y JavaScript (en las páginas como la de Ayuda para explorar los ejemplos y encontrar información con relación al uso de uso de JavaScript con applets de GeoGebra.

Global JavaScript

En la pestaña "Global JavaScript" de la de "Programas de guion - Scripting", del Cuadro de Propiedades, pueden definirse algunas funciones (no variables) que estarán disponibles desde otros guiones o scripts. Establecer, así, asignaciones pasar a la construcción.
También se puede definir la función ggbOnInit(), que se convoca automáticamente al recuperarse la construcción. La función ggbOnInit puede emplearse para registrar algunos espectadores, como se expone en el ejemplo.

Ejemplo:
function onAdd(nombre){
    alert("Objeto "+nombre+" añadido.");
}

function ggbOnInit(){
    ggbApplet.registerAddListener("onAdd");
}
En primer lugar se define la función onAdd que en tanto se le pase una cadena de texto, expone un mensaje dependiente de la cadena. Luego, usando la función ggbOnInit, se le puede indicar a GeoGebra que convoque a esta función cuando se añade un nuevo objeto. Una vez que se ha recuperado la construcción, la función ggbOnInit será convocada y a partir de ese momento, cuando se fuese a añadir un punto llamado, por ejemplo, A, aparecerá el mensaje "Objeto A añadido".

También pueden emplearse espectadores para acciones del orden de renombrar, eliminar y borrar una construcción. La lista completa está disponible en Referencia:JavaScript

Nota: Al emplear un método ggbApplet cualquiera en Global JavaScript fuera de ggbOnInit, no operará como se pretende dado que será convocado antes de recuperar la construcción.

Captación de Datos (Data Logging) USB (En breve en GeoGebra 5.0)

Para captar datos de un Vernier USB (Data Logger como Go!Motion yGo!Temp ) se puede definir un espectador de captación usando un método de registro LoggerListener como este:

function logger(value) {
   var d = value * 1;
   ggbApplet.evalCommand("(CopyFreeObject[a],"+d+")");
   ggbApplet.evalCommand("SetValue[a,a+1]");
}

Este guion asume que hay un número libre a en la construcción. Cada vez que el número d se contacta, el punto (a,d) se construye y a se incrementa.


Comandos de Guiones - Scripting

Comandos para Guiones


Estos comandos, de aporte y facilitación de guiones (scripts) en GeoGebra, pueden ser sustituidos por alternativas de funcionalidad análoga, como las disponibles desde el Cuadro de Propiedades por ejemplo. .

Nota: Al carecer de salida, no dejan objeto alguno a incorporar a otro comando.

Comandos de Tortuga

Respecto de Comandos de Guiones

Comando CasillaControl

Controlados


CasillaControl()
Establece una casilla de control ubicada por omisión en la siguiente posición disponible en la Menu view graphics.svg Vista Gráfica activa, con el tilde que establece como verdaderotrue su valor lógico.

CasillaControl( <Texto (rótulo)> )
Crea la casilla de control en las condiciones descriptas, adjudicándole y exponiendo el rótulo. ingresado.
Bulbgraph.pngAtención: El rótulo debe entrecomillarse para ser tomado literalmente.
CasillaControl( <Lista> )
Crea una casilla de control, inicialmente con el tilde que establece su estado como ciertotrue.
El valor lógicotrue o false afecta al conjunto de objetos listados.
Los objetos listados pasan a quedar ocultos cuando se quita el tilde correspondiente y vuelven a quedar expuestos al reponerlo.
Ejemplo: Si los puntos A y B se listan en...
c=CasillaControl({A, B})
al tildarse la casilla c, A y B se hacen visibles y se ocultan en caso contrario.
CasillaControl( <Texto (rótulo)>, <Lista> )
Crea la casilla de control que afecta al conjunto de objetos listados, adjudicándole y exponiendo el rótulo ingresado.
Los objetos listados pasan a quedar ocultos cuando se quita el tilde correspondiente.
Bulbgraph.pngAtención: El rótulo debe entrecomillarse para ser tomado literalmente.

Nota: Ver también la sección sobre visibilidad condicional.

Comando Botón

A Botón

Botón()
Crea un nuevo botón.
Nota: El botón se ubica en la esquina superior izquierda de la Menu view graphics.svg Vista Gráfica activa,
Botón( <Texto (etiqueta)> )
Crea un nuevo botón con la etiqueta indicada.
Ejemplo:
Botón("Ok") crea un botón en la esquina superior izquierda de la Menu view graphics.svg Vista Gráfica con el título Ok
Nota:
Ver también las herramientas: Mode buttonaction.svg Botón, en este caso.

Comando ZoomAcerca

Aumentando el Acercamiento

ZoomAcerca( <Factor de Escala> )
Acerca a la Menu view graphics.svg Vista Gráfica activa según el factor dado respecto al del enfoque actual, estableciendo el centro de la pantalla como el de aproximación.
Ejemplos:
ZoomAcerca(2) acerca la visual
ZoomAcerca(0.5) es equivalente a ZoomAleja(2), aleja la visual.
ZoomAcerca(1) no tiene efecto alguno y sí una interesante utilidad dado que elimina los rastros de la Menu view graphics.svg Vista Gráfica.
Nota: Ver el comando Rastro.
ZoomAcerca( <Factor de Escala>, <Punto Centro> )
Acerca la Menu view graphics.svg Vista Gráfica activa según el factor dado respecto al del enfoque actual, estableciendo el centro de aproximación acorde al segundo parámetro.
Nota: ZoomAleja(t) y ZoomAleja(t, A) son equivalentes a ZoomAcerca(1/t) y ZoomAcerca(1/t, A) respectivamente.
ZoomAcerca( <Mín x>, <Mín y>, <Máx x>, <Máx y> )
Acerca la Menu view graphics.svg Vista Gráfica al rectángulo dado por los vértices (Mín x, Mín y), (Máx x, Máx y).
Bulbgraph.pngAtención: Si alguno de estos parámetros es dependiente o tiene un rótulo de un conjunto al que de algún modo pertenece, los límites de la vista resultan dinámicos.
Ejemplo: Así, si a es un deslizador, ZoomAcerca(-a, -a, a, a) enfoca la vista dependiente del deslizador a. Para evitar este comportamiento si no fuera el deseado, se puede apelar al comando CopiaObjetoLibre.
Bulbgraph.pngAtención:
ZoomAleja(t) y ZoomAleja(t, A) son equivalentes a ZoomAcerca(0001/t) y ZoomAcerca(1/t, A) respectivamente.
Notas:
Bulbgraph.pngAtención: Al indicar ZoomAcerca(x(Esquina(1)), y(Esquina(1) ), x(Esquina(3) ), y(Esquina(3))) se "bloquea" la Menu view graphics.svg Vista Gráfica, se desactiva todo zoom
Con ZoomAcerca(0,0,0,0) se retorna a la normalidad.

Comando ZoomAleja

Disminuyendo de Lejos


ZoomAleja( <Factor de Escala> )
Aleja la Menu view graphics.svg Vista Gráfica activa según el factor dado respecto al del enfoque actual, estableciendo el centro de la pantalla como el de distanciamiento.
Ejemplos:

ZoomAleja(2) aleja la vista.

ZoomAjeja(1) no tiene efecto alguno y sí una interesante utilidad dado que elimina los rastros de la Menu view graphics.svg Vista Gráfica.
Nota: Ver el comando Rastro.
ZoomAleja( <Factorde Escala>, <Punto Centro> )
Aleja la Menu view graphics.svg Vista Gráfica activa según el factor dado respecto al del enfoque actual, estableciendo el centro de la pantalla acorde al segundo parámetro.
Ejemplo:
ZoomAleja(2, (0, 0)) aleja la Menu view graphics.svg Vista Gráfica en un factor de 2 con centro en el origen.
Bulbgraph.pngAtención:
ZoomAleja(t) y ZoomAleja(t,A) son equivalentes a ZoomAcerca(0001/t) y ZoomAcerca(1/t, A) respectivamente.
Notas:

Ideas para Ensayar

Aproximaciónlinealtangenciala una función

Si se establece un punto A sobre una función f que se vincula a un botón con una línea de código como ZoomAcerca(2, A), con esa óptica magnificada el trazo de la gráfica se identifica visualmente con la tangente a f en A.
Un botón adicional asociado al Zoom de Alejamiento (ZoomAleja(2, A)) permite reintentarlo en otra posición y volver, una vez reubicado el punto, a la mirada de cerca.
Para f(x) = 2 x² + x - 7, por ejemplo, al colocar a A sobre una rama de la parábola, una pulsación o dos para el acercamiento, basta para tener la apreciación linealizada. Pero se hace necesaria una lupa de mayor magnificación para provocar la misma ilusión óptica cerca del vértice.

Bulbgraph.pngAtención: Para volver a la Vista Estándar puede pulsarse Ctrl + M.
Nota:
Ver, para ilustrar la posibilidad de emplear el comando ZoomAcerca para limpiar rastros, la aplicación que se detalla en el tutorial de Escenarios de Análisis
© 2020 International GeoGebra Institute