# El manual de &kig;

## Introducción

&kig; es una aplicación de geometría interactiva. Intenta servir para dos propósitos:

- Permitir que los estudiantes exploren figuras y conceptos matemáticos por medio del ordenador.

- Servir como editor visual para dibujar figuras matemáticas e incluirlas en otros documentos.

Puede informar sobre los problemas que encuentre en &kig; utilizando la herramienta de información de fallos (Ayuda Informar de fallo), o contactar conmigo en toscano.pino@tiscali.it.

Como &kig; soportas macros y la construcción de locus, es posible definir macros relativamente avanzados. Si ha creado un macro interesante, que podría resultar útil para otras personas, puede enviármelo por correo a toscano.pino@tiscali.it, y lo incluiré en la distribución (si lo hace, se licenciará en base a los términos de la licencia de &kig;, la GPL, por lo que otros usuarios podrán utilizarlo y adaptarlo libremente).

## Uso básico

### Construcción de objetos

#### Construcción de puntos

Puede construir puntos de varias formas:

- Seleccione la opción de menú Objetos Puntos Punto o pulse el botón adecuado en la barra de herramientas. Podrá construir un punto pulsando en la posición deseada de la ventana.

  En realidad, esto funciona de la misma forma que la construcción de otros objetos: pulsar en la entrada del menú o botón de la barra de herramientas correspondiente y seleccionar los elementos necesarios para la construcción final del objeto.

- Como la construcción de puntos es bastante habitual, solo necesitará pulsar en cualquier lugar de la pantalla con el &MMB; para crearlo, sin necesidad de ir al menú o al botón.

- Puede construir puntos mientras está construyendo otros objetos en el fondo, seleccionándolos opcionalmente para el objeto que está construyendo. Para obtener más información, vea constructing-other-objects.

Se ha construido un punto Se ha construido un punto

#### Construcción de otros objetos

Para construir objetos diferentes a los puntos, normalmente hay que seleccionar la entrada apropiada en el menú Objetos, o pulsar en uno de los botones de la barra de herramientas.

Construcción de un círculo Construcción de un círculo

Ésto iniciará la construcción de un nuevo objeto del tipo elegido. Todos estos tipos requieren argumentos. Por ejemplo, si selecciona un círculo utilizando el centro y un punto, deberá proporcionar dos puntos: uno para el centro y otro para el punto del círculo.

Estos argumentos también son objetos, que puede seleccionar, solo tiene que pulsar sobre ellos. Cuando mueva el cursor sobre un argumento que desee utilizar para construir un objeto, se mostrará una imagen preliminar con el aspecto final. Para los objetos que requieren puntos como argumentos, puede construir un nuevo punto en la posición actual del cursor pulsando el &LMB;.

Siempre es posible cancelar la construcción de un nuevo objeto pulsando la tecla &Esc; o pulsando el botón Detener (octágono rojo con una «X») sobre la barra de herramientas.

Construcción de un círculo. Construcción de un círculo

### Selección de objetos

La selección de objetos puede realizarse de dos maneras:

- Un objeto quedará seleccionado si se pulsa sobre él con el ratón, quitando cualquier selección anterior. Si no desea que ocurra esto último, mantenga pulsada la tecla &Ctrl; al realizar la nueva selección.

- Es posible seleccionar todos los objetos de una zona pulsando sobre una zona vacía de la pantalla y arrastrando el cursor del ratón para que forme un rectángulo alrededor del área deseada. Salvo que se mantenga pulsada la tecla &Ctrl;, como en el caso anterior también queda anulada cualquier selección previa.

Cuando tenga más de un objeto bajo el ratón, puede decidir con facilidad qué objeto seleccionar o añadir a la selección actual. Pulse con el &LMB;, mientras mantiene pulsada la tecla &Shift;, para que aparezca un menú con todos los objetos bajo el ratón. A continuación podrá seleccionar el objeto que desee. Como se indicó anteriormente, el comportamiento de la tecla &Ctrl; afectará a la selección.

Selección de objetos Selección de objetos

### Mover objetos

Para eliminar objetos primero hay que seleccionarlos.

Una vez haya seleccionado los objetos que desee mover, puede comenzar la operación manteniendo el &LMB; pulsado sobre ellos y arrastrándolos hasta la nueva posición. Cuando termine, basta con que suelte el &LMB;.

Para algunos tipos de objetos (especialmente cuando están definidos por locus complicados) puede resultar lento en equipos antiguos. Esto es desgraciadamente, inevitable, dado el número de cálculos necesarios.

Si pulsa sobre uno de los objetos seleccionados con el &RMB;, y seleccione Mover, al desplazar el ratón moverá el objeto. Cuando el objeto se mueva a la posición deseada, otra pulsación del &LMB; detendrá el movimiento del objeto.

### Eliminación de objetos

Para eliminar objetos primero hay que seleccionarlos, y después realizar una de estas operaciones:

- Pulsar la tecla Suprimir.

- Pulsar el botón eliminar en la barra de herramientas.

- Pulsar con el botón derecho del ratón sobre uno de los objetos, y seleccionar Eliminar en el menú contextual que aparece.

### Mostrar y ocultar objetos

En &kig; es posible ocultar objetos. Esto se hace seleccionando los objetos, pulsando con el botón &RMB; y seleccionando Ocultar en el menú contextual que aparece.

Para volver a mostrar los objetos, utilice la opción de menú Editar Mostrar todo... Esto mostrará todos los objetos ocultos.

#### Visión nocturna

La visión nocturna es una forma particular de trabajar con objetos ocultos. Cuando tenga que mover o cambiar algo en uno o más objetos pero sin mostrar todos los objetos ocultos, la visión nocturna le ayudará.

Básicamente, le permite ver los objetos ocultos como si estuvieran visibles, de forma que pueda manipularlos como lo haría normalmente. En el modo de visión nocturna, los objetos ocultos se harán visibles, pero con un color gris.

Para cambiar el modo de visión nocturna, utilice Preferencias Usar lentes infrarrojos.

### Deshacer/Rehacer

En &kig;, puede deshacer casi cualquier cambio que haga en el documento. Solo necesita utilizar los botones deshacer/rehacer en la barra de herramientas, o los accesos rápidos adecuados.

### Modo de pantalla completa

&kig; también tiene un modo de pantalla completa. Para utilizarlo, pulse el correspondiente botón de la barra de herramientas, o seleccione Preferencias Modo de pantalla completa.

Para dejar el modo de pantalla completa, pulse el &RMB; en cualquier lugar de la pantalla en que no haya ningún objeto, y seleccione Salir del modo de pantalla completa, o pulse la tecla &Esc;.

## Tipos de objetos en &kig;

&kig; soporta un gran número de tipos de objetos. Por favor, tenga en cuenta que no todos los tipos de objetos se muestran en las barras de herramientas: existen algunos objetos que solo puede construir a través del menú Objetos de la barra de menú. Por supuesto, como en cualquier aplicación de &kde;, los contenidos de las barras de herramientas son configurables. Pruebe la opción Preferencias Configurar barras de herramientas... si desea realizar ésto.

## Uso avanzado

### Menús contextuales

&kig; tiene menús contextuales para sus objetos. Basta pulsar con el &RMB; sobre uno de ellos para mostrarlo. Existen varias opciones: para construir otros objetos, establecer colores, ocultar, mover y eliminar objetos. Algunos objetos tienen sus propias opciones (⪚ es posible redefinir ciertos puntos obligatorios en una línea en la que antes no estaban, &etc;). Estas opciones deberían ser suficientemente intuitivas.

### Menús contextuales del documento

Al pulsar con el botón derecho en el documento (&ie;, no sobre un objeto) aparecerá un menú que puede utilizar para comenzar a construir un objeto nuevo, cambiar el sistema de coordenadas utilizado, mostrar objetos ocultos, e incluso aumentar o reducir el documento.

### Definición de macros

Una de las características más avanzadas de &kig; es su soporte para macros. Esto le permite definir nuevos tipos de objetos a partir de otros que ya estén definidos.

Por ejemplo: Suponga que desea realizar un macro para construir un círculo a partir de tres puntos. Debería introducir tres puntos, y a continuación construir algunas perpendiculares y puntos medios para hallar el centro. Ahora podrá utilizar la orden «Circunferencia a partir de tres puntos» (utilizando uno de los puntos como punto para esta orden). La siguiente imagen debería aclararlo esto un poco:

Prueba de ejecución de macros Prueba de ejecución de macros

A continuación deberá definir el macro. Seleccione Nuevo macro en el menú Tipos, o pulse en el botón de la barra de herramientas. Aparecerá un asistente, indicándole que seleccione los objetos dados. En nuestro ejemplo serán esos tres puntos. Así que seleccione los tres puntos (pulse sobre ellos para seleccionarlos y una segunda vez para deseleccionarlos) y pulse el botón Siguiente para continuar. Finalmente seleccione los últimos objetos (sólo el círculo en nuestro ejemplo).

El asistente para macros El asistente para macros

Una vez hecho ésto, pulse el botón Siguiente para continuar. Introduzca un nombre y, opcionalmente, una descripción del nuevo tipo, y pulse el botón Finalizar. Su macro estará terminada.

Para utilizar el nuevo tipo de macro, pulse su botón en la barra de herramientas o selecciónelo en el menú Objetos. Construir un macro objeto es como construir cualquier otro objeto.

Uso de su nuevo tipo Uso de su nuevo tipo

### Trabajo con tipos

Como ha visto en el capítulo anterior, &kig; le permite crear sus propios objetos. &kig; también se asegura de que una vez que haya creado un objeto, se guarde al salir y se cargue en el nuevo inicio del programa. No es necesario que cargue o guarde manualmente las definiciones de macros. Sin embargo, &kig; le permite hacer más cosas con los macros. Si selecciona Tipos Administrar tipos... en el menú, verá un diálogo en el que podrá editar los tipos. Ésto le permite modificar los tipos existentes, eliminar los tipos que no vaya a utilizar más, exportarlos y cargarlos de un archivo.

Diálogo de edición de tipos El diálogo de edición de tipos

### Etiquetas de texto

&kig; le permite añadir etiquetas de texto a una construcción. Esto es muy útil para mostrar nombres, explicaciones u otro texto en las construcciones. &kig; también puede mostrar información disponible sobre objetos (dicho de otro modo, «propiedades»).

Para construir una etiqueta de texto, basta con que pulse en el botón Etiqueta de texto en la barra de herramientas de &kig; o seleccione Objetos Otros Etiqueta de texto en la barra de menú.

Lo siguiente que debe hacer es seleccionar una ubicación para la etiqueta de texto. También puede seleccionar una ubicación aleatoria en la pantalla, o decidir «asociar» la etiqueta a un objeto.

Asociar una etiqueta a un círculo... Asociar una etiqueta a un círculo...

Después de que haya seleccionado dónde colocar la etiqueta, la etiqueta de texto aparecerá. Aquí, podrá teclear el texto que desee que aparezca en la nueva etiqueta, tras lo cual deberá pulsar Finalizar. Ahora debería ver la etiqueta en su documento.

El diálogo de la etiqueta de texto El diálogo de la etiqueta de texto

El ejemplo anterior era sencillo, y limitado solo al texto. Sin embargo, también existe soporte para mostrar información variable sobre los objetos en una etiqueta (⪚ puede construir una etiqueta con el texto «Este segmento tiene una longitud de %1 unidades.» donde %1 se reemplazará dinámicamente con la longitud del segmento específico).

Para hacerlo, introduzca un texto con un número de ubicadores ( %1, %2, &etc;) integrados. A continuación pulse el botón Siguiente para continuar. Si desea cambiar el texto o las variables posteriormente, puede volver hacia atrás utilizando el botón Atrás.

El asistente mostrará ahora el texto introducido con los ubicadores sustituidos por algo como argumento 1. Para seleccionar la propiedad conectada a un determinado argumento debe pulsar primero sobre el argumento en cuestión. A continuación pulse sobre el objeto que necesite y que tiene esta propiedad, y seleccione la propiedad en el menú que aparezca. En el ejemplo anterior, debería pulsar sobre argumento 1, después sobre el segmento adecuado de la ventana principal de &kig;, y seleccionar la propiedad Longitud. A continuación, puede rellenar el resto de las partes de la variable, o seleccionar otra propiedad de las ya configuradas si desea modificarlas. Cuando esté listo, pulse el botón Finalizar para completar la construcción de la etiqueta de texto.

Selección de una propiedad para una variable Selección de una propiedad para una variable

### Locus

&kig; soporta el uso de locus. Un locus se define matemáticamente como el conjunto de todos los puntos o líneas que satisfacen o están determinados por condiciones específicas, como en «el locus de los puntos equidistantes a un punto dado es un círculo». Eche un vistazo a un ejemplo sobre el uso de locus en &kig;:

Considere la siguiente construcción geométrica: Dibujamos un círculo, y un punto que se mueva únicamente a lo largo de su circunferencia (construya este punto situando el cursor en un círculo y pulsando el &MMB;. Si intenta mover el punto resultante, verá que no puede moverse fuera del círculo). A continuación, dibujamos un segmento desde este punto al centro del círculo, y el punto medio de este segmento.

Una construcción simple utilizando un locus Una construcción simple utilizando un locus

Ahora, si se mueve al punto que está contenido en el círculo, verá que el segundo punto se moverá con él. Si mantuviera un lápiz en el segundo punto, y se moviera el primero alrededor del círculo completo, se dibujaría un círculo nuevo, con la mitad de tamaño que el otro. La ruta que el segundo punto seguiría mientras el primero se mueve alrededor del círculo, sería su locus.

En realidad, construir el locus de un punto es muy simple. Pulse el botón locus en la barra de herramientas, o seleccione Objetos Otros Locus en la barra de menú. A continuación seleccione el punto contenido como punto en movimiento (aparecerá el texto Punto que se mueve que podrá mover con el cursor), y el otro es el punto dependiente. Entonces se dibujará el locus del punto dependiente.

## Script

&kig; permite crear sus propios tipos personalizados en el lenguaje Python. Ésta es una característica muy avanzada, y sólo conozco otro programa de geometría interactiva con una funcionalidad similar ( el programa &drgeo; de GNOME).

Los scripts Python en &kig; básicamente le permiten crear sus propios objetos a partir de objetos padre. Por ejemplo, si es profesor de matemáticas, y tiene una extravagante forma de calcular un punto interesante en una cónica, en lugar de liarse con complejas construcciones y macros, puede escribir código en Python para calcular el punto y &kig; se lo mostrará.

Suponga que no sabe que &kig; tiene construído el tipo «Punto medio», y desea mostrar el punto medio de dos puntos dados. Puede pulsar el botón Script de Python en la barra de herramientas, o seleccione Objetos Otros Script de Python en la barra de menú. Se le presentará un asistente con el que comenzar.

El asistente del objeto del script El asistente del objeto del script

Lo primero que tiene que hacer es seleccionar los argumentos para el objeto del script. En nuestro ejemplo, los dos puntos de los que desea mostrar 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 para su objeto del script. En este lugar estarán situados código de plantilla de y algunos comentarios. Es importante estar seguro de que su código es un código Python válido. Aquellos familiarizados con Python sabrán que estamos definiendo una función de Python llamada `calc`. Esto es necesario para adherirse a las reglas de Python para la definición de funciones. Por ejemplo, cada línea de la función debería comenzar con un Tabulador. La primera que no comience con un tabulador finalizará 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. Éstos son los objetos seleccionados como argumento en la pantalla anterior. Necesitará tantos argumentos como haya seleccionado. Estos se llamarán `arg1` y `arg2`, pero puede cambiar sus nombres por otros que tengan un significado.

En la función, puede realizar todos los cálculos que considere necesarios utilizando los dos argumentos si los necesita. 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 necesarios en nuestro ejemplo son muy simples, añada los dos conjuntos de coordenadas y divida 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 )

Introducir código Introducir el código para el punto medio en el asistente del objeto del script.

Si pulsa el botón Finalizar, el nuevo objeto aparecerá en el documento de &kig;. Si mueve uno de los puntos, el punto creado se moverá sobre él. Se pueden construir objetos mucho más potentes de esta forma: pruébelos.

Construcción de objetos del script El objeto del script construido nuevamente.

Todos los objetos en &kig; pueden utilizarse en el código Python. Como se vió anteriormente, los puntos son de la clase `Punto`, y puede utilizar ⪚ 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 se proporciona una referencia mucho más completa en el sitio web de &kig;.

## Características de &kig;

- &kig; es una aplicación de código abierto. Esto significa que usted es libre de utilizarlo y modificarlo como desee. La distribución de &kig; está sujeta a algunas restricciones, básicamente que todos debemos tener los mismos derechos de utilización de &kig;, incluyendo cualquier modificación que se realice.

  Los programas de software libre se desarrollan con un espíritu muy abierto, y sus desarrolladores normalmente responden bien a los comentarios de los usuarios. Por lo tanto, si tiene preguntas, quejas o cualquier comentario sobre &kig;, por favor hágaselo saber al autor en toscano.pino@tiscali.it.

- &kig; es una aplicación KPart, lo que significa que es posible empotrarla en otro programa de &kde;. Si abre un archivo `.kig` en &konqueror;, es posible que se abra directamente en la pantalla de &konqueror;, en vez de iniciar una aplicación externa.

- Trabajar con &kig; debería resultar bastante sencillo. La construcción de objetos es sencilla e interactiva, mostrándose los resultados preliminares, &kig;. El desplazamiento, selección y construcción de todo funcionará como se espera. El soporte de deshacer debería ser muy intuitivo.

- &kig; soporta la definición de macros de una manera sencilla. Estos objetos se presentan ante el usuario como objetos normales. Se guardan al salir del programa y se cargan al volver a iniciarlo, de forma que no se pierden al salir. Puede administrar estos objetos en el diálogo del Administrador de tipos (vea working-with-types). Puede exportarlos a archivos, importarlos desde archivos, editarlos y eliminarlos.

- &kig; guarda su información en un formato &XML; completamente legible.

- &kig; soporta la construcción de locus.

- &kig; le permite exportar un archivo &kig; en algunos formatos interesantes, como imágenes, archivos XFig y LaTeX, e imágenes vectoriales SVG. Esto resulta bastante útil, ya que no todos los programas soportan, de momento, el formato de &kig;.

- &kig; tiene un sistema de transformación muy flexible.

- &kig; pretende ser compatible con sus competidores. Por eso soporta el formato de archivo de &kgeo;, el formato de archivo de &kseg; parcialmente los formatos de &drgeo; y &cabri;, asimismo, se está trabajando en otros formatos.

## Preguntas y respuestas

&reporting.bugs; &updating.documentation;

## Créditos y licencia

&kig;

&kig; copyright 2002-2004 Dominique Devriese devriese@kde.org.

Copyright de la documentación 2002-2004 Dominique Devriese devriese@kde.org.

Copyright de la documentación 2004-2005 Pino Toscano toscano.pino@tiscali.it.

Revisado por &Philip.Rodrigues; &Philip.Rodrigues.mail;.

Traducido por Miguel Revilla Rodríguez yo@miguelrevilla.com y Santiago Fernández Sancho santi@kde-es.org.

&underFDL; &underGPL;

## Instalación

### Cómo obtener &kig;

&install.intro.documentation;

### Compilación e instalación

&install.compile.documentation;

## Contribuir

### Software libre

&kig; es Software libre. Eso significa que su código fuente se distribuye libremente y está disponible en Internet, de forma que cualquiera pueda utilizarlo, leerlo, modificarlo y distribuirlo. Yo trabajo en ello como afición, y así he aprendido mucho sobre programación, C++, &kde;/&Qt;, matemáticas, colaboración en software y proyectos de código abierto.

### Contribuir

El motivo de este capítulo es aclararle a usted (el usuario) los derechos que le proporciona la licencia de &kig;. Como en todo el software libre, usted puede (y se le recomienda) solucionar los problemas que encuentre durante el uso, añadir las opciones que falten, distribuir su programa modificado, y enviármelas a toscano.pino@tiscali.it, para que pueda incorporarlas a la próxima versión para el disfrute del resto de usuarios. Personalmente no tengo ningún interés económico en este proyecto.

Si tiene dudas sobre sus derechos de uso de este software, o de los derechos de las personas a utilizar las modificaciones que haga sobre este software, &etc; puede leer la licencia. La encontrará en el archivo `COPYING` en el árbol de archivos del código fuente de &kig; o en la pestaña de licencia del diálogo en el diálogo Acerca de Kig.

### ¿Cómo contribuir?

Toda ayuda será bienvenida. Si no le gustan los iconos, o que el manual necesita una actualización, o que tiene un macro fantástico que desea compartir con el mundo, no dude en ponerse en contacto conmigo. Por favor, tenga en cuenta que toda contribución será distribuida bajo los términos de la licencia &GNU; GPL, cuyos términos puede encontrar en el el archivo `COPYING` del árbol del código fuente de &kig;, y en el capítulo Créditos y licencias de este manual.

&documentation.index;