Con KSEG usted puede crear una construcción dinámica primero poniendo puntos en la pantalla y luego usándolos para construir otros objetos, tales como líneas rectas o círculos. Luego usted puede mover los puntos que creó y mirar cómo responde la construcción entera. KSEG es muchísimo más que eso, desde luego, pero esta es la idea básica. También lo uso con frecuencia para generar diagramas geométricos de alta calidad para usarlos con LaTeX. Encuentro que la manera más sencilla de hacer esto es imprimir desde KSEG un archivo Postscript (.ps), convertirlo a Encapsulated Postscript (.eps), ponerle anotaciones en XFIG y exportarlo en formato PS o LaTeX.
Un problema de terminología: Utilizo el término "construcción" para referirme al archivo (fichero) "tipo macro" de KSEG, así como simplemente para describir un conjunto de objetos geométricos que pueden depender unos de otros. Usualmente es claro a partir del contexto a cuál de los dos significados me refiero, pero en este documento usaré la palabra "Construcción" con mayúscula para referirme al tipo de archivo, y "construcción" con minúscula para referirme a un conjunto de objetos geométricos.
Un objeto geométrico puede ser "no existente" en un sentido
geométrico, como por ejemplo un punto de intersección de círculos
disjuntos. Si los círculos más tarde se aproximan uno al otro, los
puntos comienzan propiamente a existir de nuevo. Los descendientes de
objetos no existentes son también no existentes (con la excepción del
lugar geométrico. Para detalles, lea la documentación de lugar
geométrico más abajo). Así que si usted mueve un punto por aquí y por
allá y de repente la mayor parte de la construcción desaparece debido
a que dos segmentos de recta han dejado de intersectarse (los objetos
que desaparecen son los descendientes del punto de intersección), no
se preocupe: reaparecerá tan pronto como se intersecten de nuevo.
Retroceder al inicio
Al seleccionar un grupo de selección (o varios) en la ventana de lista del manejador de grupos de selección y hacer clic en el botón Seleccionar, todos los objetos de ese grupo se seleccionan y todos los demás objetos se deseleccionan. Sosteniendo SHIFT mientras se hace clic en el botón de Seleccionar seleccionará los objetos en ese grupo sin deseleccionar otros objetos que pueden estar actualmente seleccionados. Un clic en el botón Deseleccionar deseleccionará solamente los objetos en el grupo. Cuando hay al menos un objeto seleccionado, el botón Nuevo Grupo se habilita. Úselo para crear un nuevo grupo consistente de los objetos seleccionados. No es posible eliminar grupos predefinidos.
Al seleccionar Afectar Objetos Invisibles solamente se actúa en los grupos de selección predeterminados. Si se deselecciona (comportamiento por defecto), "Todos los puntos" se refiere únicamente a los puntos visibles (no ocultos); si se selecciona, "Todos los puntos" se refiere también a los ocultos. Los grupos que no son predefinidos siempre seleccionan/deseleccionan todos los objetos en ellos, incluyendo los ocultos.
Un grupo (no definido) puede volverse vacío si todos sus miembros son
eliminados (directamente o deshaciéndolos). Tales grupos están
marcados con un signo de menos pero no se eliminan automáticamente
(puesto que deshacer/rehacer puede regresar objetos en esos grupos a
la vida). Sin embargo, los grupos vacíos no se guardan con el
documento.
Retroceder al inicio
Por ejemplo, sea L una recta, sea A un punto en L, sea B un punto no en L, y sea K la recta a través de A perpendicular a AB. Entonces si K es el objeto conducido y A es el conductor, la envolvente del lugar geométrico trazado por K es la parábola con foco B que es tangente a L.
Puesto que un lugar geométrico es un conjunto infinito de objetos geométricos, KSEG no puede calcularlo exactamente sino que a cambio aproxima el lugar geométrico por muestreo. Se puede cambiar el número de muestras que KSEG realiza para un lugar geométrico particular haciendo doble-clic en ese lugar geométrico o bien seleccionándolo y eligiendo "Editar/Cambiar número de muestras...". Un caso especial es cuando el objeto guiado es un punto. En ese caso, KSEG automáticamente conecta los puntos muestreados y usa un algoritmo adaptativo para tratar de rápidamente suavizar y precisar el lugar geométrico. En ese caso, el número de muestras especificado sirve tan sólo como límite superior del número de muestras realmente ejecutadas --el algoritmo puede decidir dejar de muestrear si piensa que el lugar geométrico es suficientemente bueno. Este algoritmo adaptativo generalmente resulta en lugares geométricos de mucho mejor apariencia comparados a los generados por programas similares a KSEG.
Elección:
La pila de deshacer en el editor de ecuaciones es completamente ajena de la pila de deshacer en el resto de KSEG y se pierde tan pronto se cierra la ventana del editor de cálculos.
Dentro de la ventana del editor de cálculos se pueden entrar números, operaciones aritméticas usuales, raíces selectas, potencias y fracciones desde la barra de herramientas (o use las teclas de método abreviado CTRL+2, CTRL+6, CTRL+/). También se pueden usar las funciones siguientes:
sqrt (raíz cuadrada), log (logaritmo natural), exp (exponencial o antilogaritmo natural), floor (truncar hacia abajo), ceil (truncar hacia arriba), fabs (valor absoluto), sin (seno), cos (coseno), tan (tangente), sinh (seno hiperbólico), cosh (coseno hiperbólico), tanh (tangente hiperbólica), asin (arco seno), acos (arco coseno), atan (arco tangente), asinh (arco de seno hiperbólico), acosh (arco de coseno hiperbólico), atanh (arco de tangente hiperbólica).
Note que las funciones anteriores trabajan con radianes, en contraste con las medidas y transformaciones, que lo hacen en grados. Sé que esto no es deseable, pero la única manera razonable de arreglarlo es añadiendo soporte de unidades a KSEG (lo cual no se ha hecho).
Finalmente, se puede referenciar otras medidas y cálculos dándoles un clic izquierdo en la ventana principal de KSEG mientras el editor de cálculos está abierto. No se permite referenciar cálculos que referencien el que se está editando.
Debo decir que esta es la parte de KSEG con la que estoy menos
contento. No hay soporte para unidades razonables algunas y los
cálculos son más bien torpes. Finalmente, el código de programa
referente a fórmulas es feo y lento (y un tanto falto de depuración).
Retroceder al inicio
Los puntos y diversas curvas tienen etiquetas que se pueden mostrar (pues no se muestran por defecto) al seleccionar el/los objeto(s) e ir a "Editar/Mostrar etiqueta(s)". Las etiquetas se pueden modificar seleccionando el objeto y yendo a "Editar/Cambiar etiqueta" o haciendo doble clic en la etiqueta si está visible. Se puede incluso usar superíndices o subíndices en las etiquetas así como otros efectos si es que usted descubre cómo :-) Se puede arrastrar una etiqueta para cambiar su posición relativa al objeto al que se refiere.
Por ejemplo, suponga que construye un triángulo ABC, luego efectúa una larga construcción de un centro aún por descubrir, y luego decide investigar el comportamiento cuando ABC es isósceles. Para hacer AB=BC, construya el círculo con centro B pasando por A. Luego sostenga CTRL y jale C sobre el círculo. Luego de soltar el botón del ratón, C estará constreñido a yacer en el círculo de modo que ABC será isósceles. Si decide hacer ABC arbitrario de nuevo, sostenga CTRL, y arrastre C fuera del círculo y suéltelo en algún sitio vacío.
De modo que:
A veces KSEG no le permitirá hacer la reconstricción deseada. Esto es
por una buena razón (aunque puede haber errores de programación): no
es posible reconstreñir un punto a uno de sus descendientes. Tampoco
se puede reconstreñir un punto si al hacerlo se descompone la
dependencia de un punto guiado en un lugar geométrico respecto a su
conductor (tampoco se puede nunca reconstreñir un punto que es el
conductor de algún lugar geométrico). Finalmente, hay reglas
complicadas en Construcciones que tratan de asegurar que la
construcción no se estropeará con una reconstricción. Por ejemplo, no
es posible reconstreñir un punto "Dado" a que yazga en una curva
"Final". Si usted encuentra que KSEG le permite efectuar una
reconstrucción que invalida la Construcción, por favor avíseme.
Retroceder al inicio
Técnicamente, esta es la regla: imagine las relaciones progenitor/descendiente como un grafo dirigido cuyos vértices son los objetos. Si cada trayectoria (en el grafo dirigido) del objeto A a cada objeto sin descendientes tiene al menos un objeto Dado, entonces A no se construye.
El algoritmo que aparea los objetos seleccionados con lo objetos Dados no es trivial (ni es muy bueno teóricamente). Lo primero que se intenta es aparear el orden seleccionado con el orden Dado. Si eso no funciona se intenta una búsqueda (realmente se debería hacer un apareo bipartita pero es más trabajoso implementarlo y su valor es cuestionable). A veces el algoritmo no puede aparear los objetos seleccionados con los Dados aunque tal apareo sea posible (y en el menú, "Animar" estará deshabilitado). En tal caso, simplemente seleccione los objetos en distinto orden, más próximo al orden de los Dados.
Una Construcción se vuelve recursiva al insertar "objetos" de tipo ciclo (bucle, rizo) en ella. Un ciclo le avisa a KSEG que, luego de que todos los demás pasos de la Construcción han sido efectuados, deberá repetir la construcción recursivamente comenzando con los objetos seleccionados cuando el ciclo se especifica. Desde luego que KSEG no hace esto para siempre: al animar una Construcción recursiva KSEG le pide una profundidad máxima de recursión. Tenga cuidado: si tiene más de un ciclo en la Construcción, el número de objetos que KSEG debe de construir crece exponencialmente con respecto a la máxima profundidad de recursión. En otras palabras, mantenga una profundidad de recursión pequeña. En mi viejo sistema de 350 MHz, KSEG puede encargarse de cerca de 100,000 objetos cómodamente (lo cual debería de ser suficiente para cualquier cosa que se me ocurra).
Recuerde que tan pronto como inserte un ciclo en una Construcción, el conjunto de objetos Dados se vuelve fijo (ya no podrá marcar nuevos objetos como Dados ni volver objetos Dados normales; además, eliminar un objeto Dado elimina también todos los ciclos, etc.) Esto es para prevenir que los ciclos se invaliden. Para cambiar el conjunto de objetos Dados, primero borre los ciclos.
También puede volver los objetos en una Construcción "Finales" o "Iniciales". Los objetos Finales son simples: tan sólo se construyen en el último nivel de recursión. Esto es útil para muchas cosas, particularmente para fractales que solamente muestran el nivel más alto de detalle: vea dragon.sec o sierp2.sec. Similarmente, los descendientes de objetos Finales únicamente pueden construirse en el último nivel de recursión: éstos se marcan "(final)" en la lista de Construcciones.
Los objetos iniciales son complicados: es una característica "avanzada". No es tan poderosa que digamos, pero tiene suficientes efectos raros como para ser realmente difícil de descifrar en ciertas ocasiones. Un objeto Inicial solamente se construye una vez (en el nivel inicial de recursión). Cualquier objeto todos cuyos progenitores sean Iniciales (o implícitamente Inicial) también se vuelve implícitamente Inicial y se marca con "(inicial)" en la lista de Construcción. Para una buena ilustración, vea sierp.sec: primero anímelo normalmente (observando que los lados más largos del triángulo se construyen una sola vez) y luego construya un punto P en el segmento inicial s_9 y construya el segmento PC (de P al punto Dado C). Anímelo de nuevo y observe el efecto. Los objetos Iniciales se pueden usar para conservar memoria (como en koch.sec) o debido a sus efectos.
En Construcciones recursivas, cuando manipula objetos
Finales/Dados/Iniciales, KSEG hará su mejor esfuerzo para prevenir
configuraciones inválidas o carentes de significado, tales como
objetos Iniciales o Dados que tienen progenitores que son objetos
Finales. Puede que no sea obvio lo que KSEG haciendo pero usualmente
es lo correcto (si Ud. encuentra un caso en que no lo sea, envíeme un
correo electrónico por favor conteniendo la Construcción válida y una
descripción de la acción que la vuelve inválida).
Retroceder al inicio
Traducción al español de Eduardo Dueñez (Ligeramente adaptado de la versión inglesa)
Ilya Baran
ibaran@mit.edu
http://www.mit.edu/~ibaran/