Programación (guiones)

Un Guion 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 (ver JavaScript)

Puedes establecer un Guion en la pestaña "Programa de guión (Scripting) que se encuentra en el Menu-options.svg Cuadro de Propiedades.

GGBScript

Puedes crear guiones o scripts que consisten en secuencias de comandos de GeoGebra, como los que utilizas en la Barra de Entrada. Luego de disparar el guion, cada comando se ejecuta uno tras otro.

  • a es un deslizador que toma valores enteros entre 1 y 3 (es decir, que el Incremento está fijado en 1)

  • tipea: lista1 = {"rojo", "verde", "azul"} en la barra de entrada

  • en propiedades de a, establece el siguiente guion en la pestaña "Al actualizar" Color(a, Elemento(lista1, a))

  • al mover el deslizador su color irá cambiando de acuerdo al valor

Explicación: Cada vez que el deslizador se mueve, ocurre una actualización. Por lo tanto, se ejecuta el guion y el valor de a es utilizado para obtener un color de la lista definida, y el comando Color cambia el color del deslizador a.

Puedes utilizar # para iniciar un comentario

Note Aviso: Hay comandos que solamente pueden ser utilizados para construir guiones. Puedes encontrarlos en Comandos_de_Guiones_-_Scripting.

JavaScript

JavaScript es un lenguaje de programación utilizado por muchas tecnologías asociadas a Internet. A diferencia del lenguaje GeoGebra Script, en Javascript los comandos no necesitan ser ejecutados como una secuencia simple, pueden utilizarse controladores de flujo (if, while, for). Puedes encontrar un lindo tutorial de JavaScript en developer.mozilla.org. En GeoGebra, puedes utilizar métodos de JavaScript especiales, que permiten modificar tu construcción. Estos pertenecen al objeto ggbApplet, lo que significa que puedes llamarlos como ggbApplet.method_name(parameter,..,parameter). Para ver una lista completa de estos métodos consulta JavaScript.

for(var i =0;i<10;i++)
   ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");

Este guion crea 10 puntos A0 a A9 con coordenadas aleatorias.

Escribir guiones con JavaScript es muy versátil, pero muchas tareas pueden lograrse de un modo más sencillo utilizando GeoGebraScript.

JavaScript Global

En la sección de JavaScript Global de la pestaña Programa de guión (Scripting) que se encuentra en el cuadro Menu-options.svg Propiedades puedes definir funciones (no variables) que estarán disponibles para los otros programas de guión. Puedes definir la función ggbOnInit(), que será llamada automáticamente al cargar la construcción. La función ggbOnInit puede ser utilizada para registrar algunos listeners, como se muestra a continuación.

function onAdd(name){
    alert("Objeto "+name+" fue añadido.");
}

function ggbOnInit(){
    ggbApplet.registerAddListener("onAdd");
}

En primer lugar, se define la función onAdd que, dada una cadena, muestra un mensaje que depende de esa cadena. A continuación, utilizando la función ggbOnInit, se le indica a GeoGebra que llame a esta función cada vez que un nuevo objeto es añadido. Al recargar la construcción, la función ggbOnInit será llamada y a partir de es momento, cuando el usuario añada un punto llamado, por ejemplo A, el mensaje "Objeto A fue añadido" aparecerá.

También puedes utilizar listeners para acciones como renombrar, eliminar y limpiar una construcción. Se puede encontrar una lista completa en JavaScript.

Utilizando cualquier método ggbApplet en JavaScript Global por fuera de ggbOnInit no funcionará como se espera dado que deben ser llamados antes de que la construcción sea cargada.