Métodos de referencia para las figuras Scheme de DR. GEOFigura Scheme de DR. GEOAlgunos Ejemplos

Algunos Ejemplos

(N.del T. En lo que sigue se usarán las palabras "referencia" y "nombre". "referencia" es una variable que apunta a un objeto. "nombre" es el rótulo que aparece en la figura. A veces se usará el termino variable; pero "referencia" es más preciso en otros casos.)

En sí, Scheme es un lenguaje de muy alto nivel. Cuando una figura es definida en este lenguaje, disponemos también de todo su poder para, por ejemplo, definir recursivamente alguna parte de la figura o bien para colocar aleatoriamente ciertos objetos de tal suerte que, cada vez que se cargue la figura, los objetos aparecerán ligeramente distintos. En pocas palabras, los FSD no están atados a las limitantes de la interfaz gráfica, y además poseen todo el poder del lenguaje Scheme. Un FSD es entonces un archivo con extension .scm creado con la ayuda de un editor de texto, el cual es abierto en DR. GEO con la ayuda del comando Archivo->Evaluar.

Comencemos por estudiar un ejemplo sencillo de FSD :

(nueva-figura "Mi figura")

Este es el script más pequeño que podemos definir. Después de ser cargado en DR. GEO, simplemente crea una nueva figura vacía con el nombre "Mi figura". Podemos escribir comandos (nueva-figura "Mi figura") tantas veces como deseemos.

Veamos ahora un segundo ejemplo :

(nueva-figura "Mi figura")
(sea Punto "A" libre 1.2 -2)

Este FSD define una figura con un punto libre A de coordenadas iniciales (1,2 ; -2). Como podemos ver la sintaxis de la definición de un objeto geométrico es relativamente cómoda, a tal grado que esa expresada en nuestra lengua madre. Esto es de interés especial para la enseñanza secundaria. De hecho, todos los comandos de definición de objeto tienen una sintaxis común. Tal sintaxis es como sigue:

  1. Se comienza siempre con la palabra clave sea, la cual indica que deseamos definir un nuevo objeto
  2. Inmediatamente le sigue la clase de objeto; en este caso Punto.
  3. El nombre del objeto va enseguida, A, debe siempre estar entre dos comillas ". Si no deseamos nombrar al objeto, de todos modos es necesario dar un nombre vacío como sigue: "".
  4. Para terminar, necesitamos precisar, dentro de la clase, qué tipo de objeto, en nuestro ejemplo, la clase es punto, y el tipo es libre. Esto significa que el punto A es libre.
  5. El tipo de objeto es seguido por una lista de argumentos que depende de la clase de objeto y de que tipo de objeto. En nuestro ejemplo, esta lista se compone de dos números, las coordenadas del punto libre A.

Prosigamos con un tercer ejemplo :

(define (triángulo p1 p2 p3)
  (Segmento "" extremos p1 p2)
  (Segmento "" extremos p2 p3)
  (Segmento "" extremos p1 p3))

(define (azar)
  (- 8 (* 16 (random:uniform))))

(nueva-figura "Mi figura")

(sea Punto "A" libre (azar) 0)
(sea Punto "B" libre 5 0)
(sea Punto "C" libre (azar) 5)

(triángulo A B C)

(N. del T. En este ejemplo, dos palabras están en inglés: "random" que significa "azar", y "uniform" que significa "uniforme". Como se comentó antes es posible traducirlas modificando el archivo dentro del directorio scm donde DR. GEO esté instalado. El archivo para español es: /usr/share/drgeo/scm/drgeo_scm_interface_constant_es.scm).

Este ejemplo es particularmente interesante, nos muestra tres cosas importantes :

  1. La definición de una construcción de alto nivel no prevista por los autores de DR. GEO. En el programa que acabamos de ver hemos definido la función triángulo la cual, a partir de tres puntos construye el triángulo que pasa por esos tres puntos. Podemos comparar esto con las macros; pero con un grado de libertad mucho más amplio e importante.
  2. La definición de las funciones asociadas, en este caso definimos la función azar que devuelve un número decimal comprendido entre -8 y 8. Utilizamos esta función para añadir un elemento de azar en ciertos puntos en nuestra figura. De este modo cada vez que se cargue la figura, ésta será ligeramente distinta.
  3. En efecto, la utilización de la palabra clave sea no es obligatoria; nosotros la utilizamos para guardar una referencia al objeto creado. Por ejemplo, dentro de la función triángulo no guardamos referencias para los segmentos creados. Por otro lado, cuando definimos los puntos A, B y C necesitamos guardar una referencia para ellos, estas referencias se llamarán igual10; pero sin las comillas; así nuestras referencias son: A, B y C. En lo que sigue llamaremos símbolos a esas variables, esta es la terminología precisa del lenguaje Scheme. De este modo, al llamar a la función triángulo, pasamos como parámetros a los símbolos A, B y C que son utilizados para definir nuestros tres segmentos.

Notar que cuando definimos los segmentos, no les dimos ningún nombre; en ese caso DR. GEO les dará un nombre que está determinado a partir del nombre de sus extremos. Nuestros tres segmentos tendrán entonces los nombres [AB], [BC] y [AC].

Para concluir esta sección, veamos un último ejemplo :

(sea Punto "A" libre 1 0)
(sea Punto "B" libre 5 0)
(sea Recta "d1" 2puntos A B)

(envía A color amarillo)
(envía A forma redonda)
(envía A tamaño grande)
(envía B oculto)
(envía d1 grosor punteado)

Los tres primeros comandos crean dos puntos y una recta. La parte que nos interesa particularmente es la serie de comandos envía. Estos comandos permiten la comunicación con un objeto cuyo símbolo hemos guardado; en este caso tenemos los símbolos A, B y d1. El comando consiste en enviar un mensaje a un objeto. Su primer parámetro de entrada es el objeto con el que deseamos comunicarnos, el segundo argumento es el mensaje, los restantes argumentos están determinados por tipo de mensaje que es enviado. Por ejemplo (envía A color amarillo) envía el mensaje color con parámetro de entrada amarillo. El punto A toma entonces el color amarillo. Es fácil comprender el sentido de los otros comandos envía. Estos serán explicadosen la sección siguiente.

Hemos terminado nuestra pequeña visita guiada a las Figuras Scheme de Dr. Geo, FSD. En las secciones siguientes expondremos el conjunto de comandos disponibles para definir las FSD.


¿Comentarios?/¿Sugerencias?
O si usted es voluntario para escribir parte del manual.
-> Contacte a Hilaire Fernandes en OFSET (hilaire@ofset.org) o únase a la lista de correo de DR. GEO.

Métodos de referencia para las figuras Scheme de DR. GEOFigura Scheme de DR. GEOAlgunos Ejemplos