Capítulo 5. Creación de scripts

Kig permite crear sus propios tipos personalizados usando el lenguaje de script Python. Esta es una característica muy avanzada y solo conozco otro programa de geometría interactiva con una funcionalidad similar (el programa Dr.Geo de GNOME).

En Kig, la creación de scripts con Python le permite básicamente crear sus propios objetos a partir de objetos primarios. Por ejemplo, si usted es un profesor de matemáticas y conoce una forma imaginativa de calcular un punto interesante sobre una cónica, en lugar de liarse con complejas construcciones y macros, puede escribir un código en Python para calcular el punto y Kig se lo mostrará.

Suponga que no sabe que Kig tiene construido el tipo «Punto medio» y desea mostrar el punto medio de dos puntos dados. Puede hacer clic en el botón   Script en Python en la barra de herramientas o seleccionar ObjetosOtrosScript en Python en la barra de menú. Aparecerá un asistente con el que podrá comenzar a crear el script:

El asistente para la creación de scripts

Lo primero que tiene que hacer es seleccionar los argumentos del script. En nuestro ejemplo, estos son los dos puntos de los que desea calcular el punto medio. Selecciónelos en la ventana principal de Kig y pulse Siguiente para continuar.

Ahora se mostrará un cuadro de edición de texto en el que podrá introducir el código de su guion. Aquí encontrará ya el código de la plantilla y algunos comentarios. Es importante que se asegure de que su código es un código Python válido. Aquellos familiarizados con Python sabrán que en realidad estamos definiendo una función de Python llamada calc. Por lo tanto, es necesario seguir las reglas de Python para la definición de funciones. Por ejemplo, cada línea de la función deberá comenzar con un tabulador. La primera línea que no comience con un tabulador indicará que finaliza la definición de la función.

La función de Python que queremos definir se llama calc y en nuestro caso acepta dos argumentos. Estos son los objetos seleccionados como argumentos en la pantalla anterior. Necesitará tantos argumentos como haya seleccionado aquí. Estos se llamarán arg1 y arg2, pero puede cambiar sus nombres por otros que tengan un mayor significado para usted.

En la función, puede realizar todos los cálculos que considere necesarios utilizando los dos argumentos (en caso de que los necesite). Debería devolver el objeto que desee definir. En nuestro caso, este es un objeto Point (punto). Los dos argumentos también son objetos Point, y podemos utilizar la función Point.coordinate() para definir las coordenadas de los dos puntos dados.

Los cálculos que se necesitan en nuestro ejemplo son muy simples, solo hay que sumar los dos conjuntos de coordenadas y dividir el nuevo conjunto por dos. A continuación construiremos un punto nuevo utilizando el resultado. El código Python necesario es:

def calc( a, b ):
    m = ( a.coordinate() + b.coordinate() ) / 2;
    return Point( m )
Introducción del código para calcular el punto medio usando el asistente para la creación de scripts.

Si pulsa el botón Finalizar, el nuevo objeto aparecerá en el documento de Kig. Si mueve uno de los puntos, el punto que se acaba de crear se moverá con él. Se pueden construir objetos mucho más potentes de esta forma. Le animamos a que lo intente.

El objeto script que acaba de ser construido.

Todos los objetos en Kig pueden utilizarse en un código Python. Como hemos visto anteriormente, los puntos son de la clase Point y puede utilizarse, por ejemplo, el método Point.coordinate(). También puede devolver cualquier tipo de objeto, no solo uno de la clase Point. Existen muchos más métodos y clases disponibles en el código Python de Kig, y puede obtener una guía más completa en el sitio web de Kig.