Programa (guion-scripting)

De GeoGebra Manual
Saltar a: navegación, buscar





Un Guión o Script es una secuencia de comandos, que son ejecutados uno tras otro. GeoGebra soporta dos lenguajes - GGBScript y Javascript. La ejecución puede ser disparada por :

  • hacer clic sobre un objeto particular
  • actualizar un objeto particular (es decir, cuando el valor o las propiedades del objeto son modificadas)
  • cargar el archivo (en el caso de JavaScript)
  • Javascript listeners (see Reference:JavaScript)

You can set this script via the Tab Scripting in the Menu-options.svg Properties Dialog.

GGBScript

You can create scripts consisting of GeoGebra commands, like you can use them in the Input Bar. After triggering the script, every command is executed one after each other.

Ejemplo:
  • a is an integer-valued slider ranging from 1 to 3 (therefore Increment equals 1)
  • type in: list1 = {"red", "green", "blue"}
  • in properties of a, set "On Update" script to SetColor(a, Element(list1, a))
  • by moving the slider you change its color

Explanation: Every time the slider is moved, there an update occurs. So, for every move the script is called and the value of a is used to get one color from the list and change the color of the slider a.

Nota: You can use # to start a comment
Note Aviso: There are commands that can be only used for scripting. You can find them in the page Scripting_Commands.


JavaScript

JavaScript is a programming language used by many Internet technologies. Unlike GeoGebra Script, in Javascript the commands don't have to be executed as a simple sequence, but a control flow (if, while, for) can be used. For generic JavaScript you can find a nice tutorial on developer.mozilla.org. In GeoGebra, you can use special JavaScript methods which allow you to change the construction. These methods belong to ggbApplet object, which means that you call them as ggbApplet.method_name(parameter,..,parameter). For complete list of these methods see Reference:JavaScript.

Ejemplo:
for(var i =0;i<10;i++) 
   ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
This script creates 10 points A0 to A9 at random coordinates.
Nota: Scripting with JavaScript is very versatile, but many tasks can also be achieved using the simpler GeoGebraScript.

Global JavaScript

In the Global JavaScript part of the Scripting tab in the Menu-options.svg Properties Dialog you may define functions (not variables) which will be available from the other scripts. You can also define function ggbOnInit(), which is called automatically once the construction is loaded. The ggbOnInit function can be used for registering some listeners, as shown below.

Ejemplo:
function onAdd(name){
    alert("Object "+name+" was added.");
}

function ggbOnInit(){
    ggbApplet.registerAddListener("onAdd");
}
First we defined function onAdd that given a string shows a message depending on that string. After that, using the ggbOnInit function, we told GeoGebra to call this function whenever a new object is added. Once we reload our construction, function ggbOnInit will be called and since then, when user adds a point named e.g. A, message "Object A was added" will appear.

You can also use listeners for actions like rename, delete and clear construction. A complete list is available in Reference:JavaScript.

Nota: Using any ggbApplet methods in Global JavaScript outside of ggbOnInit will not work as intended since they will be called before the construction is loaded.


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.

GGBScript

Pueden crearse guiones que consistan en una 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.

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 desarrollar una hoja dinámica 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 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 (Próximamente 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.


© 2024 International GeoGebra Institute