Articulo de referencia

DrGeo

GNU Dr. Geo es un software de geometría interactiva que permite a sus usuarios diseñar y manipular bocetos geométricos interactivos, incluyendo modelos dinámicos de Física . [ 1...

GNU Dr. Geo es un software de geometría interactiva que permite a sus usuarios diseñar y manipular bocetos geométricos interactivos, incluyendo modelos dinámicos de Física . [ 1 ] Es software libre (el código fuente, las traducciones, los iconos y el instalador se publican bajo la licencia GNU GPL ), creado por Hilaire Fernandes, y forma parte del proyecto GNU . Se ejecuta sobre un sistema gráfico Morphic (lo que significa que se ejecuta en Linux, Mac OS, Windows, Android). Dr. Geo se desarrolló inicialmente en C++ con scripts Scheme , [ 2 ] [ 3 ] luego en varias versiones de Smalltalk con Squeak , Etoys [ 4 ] para One Laptop per Child [ 5 ] , Pharo , y luego Cuis-Smalltalk .

objetos

Dr. Geo manipula diferentes tipos de objetos como puntos, líneas, círculos, vectores, valores, transformaciones geométricas y scripts. [ 6 ]

Agujas

Dr. Geo tiene varios tipos de puntos: un punto libre, que se puede mover con el ratón (pero que puede estar unido a una curva) y un punto dado por sus coordenadas.

Los puntos también pueden crearse como la intersección de 2 curvas o como el punto medio de un segmento .

Pauta

Dr. Geo está equipado con las funciones clásicas de línea , rayo , segmento y vector .

Otros objetos curvilíneos incluyen círculos (definidos por 2 puntos, un centro y un segmento o un radio), arcos (definidos por tres puntos o un centro y un ángulo), polígonos (regulares o no, definidos por puntos extremos) y lugares geométricos .

Transformaciones

Además de la línea paralela y la línea perpendicular que pasan por un punto.

El Dr. Geo puede aplicar a un punto o a una línea una de estas transformaciones:

  1. reflexión
  2. simetría
  3. traducción
  4. rotación
  5. homotecia

Macroconstrucción

Dr. Geo viene con macroconstrucción: una forma de enseñarle a Dr. Geo nuevas construcciones. [ 7 ] Permite agregar nuevos objetos a Dr. Geo: nuevas transformaciones como la inversión de círculos , construcciones tediosas que involucran muchos objetos intermedios o construcciones que involucran scripts (también llamados macroscripts).

Cuando algunos objetos, denominados finales, dependen de otros objetos, denominados iniciales , es posible crear una construcción compleja que deduzca los objetos finales a partir de los objetos iniciales proporcionados por el usuario. Esta es una macroconstrucción , un grafo de objetos interdependientes.

Programación

El acceso a la programación por parte del usuario es fundamental en Dr. Geo: desde el software, el usuario puede leer, estudiar, modificar y redistribuir directamente versiones modificadas de Dr. Geo. Además, se propone la integración de scripts en Sketch.

El código fuente de Dr. Geo está escrito en Smalltalk . También es el lenguaje utilizado para la programación de usuarios: para extender Dr. Geo con operaciones de cálculo arbitrarias (script de Smalltalk) y para definir un boceto geométrico completamente con instrucciones de programación (boceto de Smalltalk).

Dr. Geo se distribuye con su código fuente y las herramientas de desarrollo. Por lo tanto, su código se puede editar y recompilar desde Dr. Geo mientras está en funcionamiento. [ 8 ] Este diseño, heredado de Smalltalk, facilita la prueba de nuevas ideas y nuevos diseños.

Script de Smalltalk

Curva y tangente
Curva y su tangente calculadas con scripts de Smalltalk

Un script es un objeto de primera clase definido según el código Dr. Geo. Viene con cero, uno o varios argumentos, de los tipos seleccionados al definir el script. Cuando se inserta una instancia de un script en un lienzo, el usuario primero selecciona sus argumentos en el lienzo con clics del ratón, y luego la posición en el lienzo de la salida del script. El script se actualiza en cada cálculo del lienzo. Los scripts se pueden usar en cascada, con uno como argumento de otro. [ 9 ] Los scripts están diseñados para usarse de dos maneras diferentes:

  1. Para generar un objeto (es decir, un valor numérico) y mostrar su resultado en el lienzo. Este resultado se puede utilizar para crear objetos posteriores (geométricos o de script).
  2. Para acceder a los objetos en el lienzo: modelo (MathItem) o su vista (Costume) para usos y modificaciones arbitrarias. Por ejemplo, para modificar el color de un objeto según el resultado de un cálculo.
Edición de guiones en directo

Desde el script, se accede al modelo de argumentos con los mensajes #arg1, #arg2, etc. Se accede a la vista de argumentos con los mensajes #costume1, #costume2, etc.

El cálculo del script se realiza en su método #compute. Por ejemplo, para calcular el cuadrado de un número, la méthode

compute "devuelve el cuadrado de un número" ^ self arg1 valueItem al cuadrado

Crea un objeto numérico cuyo valor es el cuadrado de su primer y único argumento, que es de tipo numérico. Cada vez que se modifica el primer número, el valor devuelto por el script también cambia.

Escena de charla informal

Editor de bocetos de Smalltalk

Los bocetos de Dr. Geo Smalltalk son bocetos definidos íntegramente en el lenguaje Smalltalk. No se trata de construir un boceto con la interfaz gráfica de Dr. Geo, sino de describirlo con el lenguaje Smalltalk. Se proporciona una interfaz de programación con una sintaxis sencilla y ligera. [ 10 ]

Smalltalk es un lenguaje de alto nivel, cuidadosamente desarrollado de forma iterativa durante unos 10 años en el Centro de Investigación de Palo Alto . Cuando se describe un boceto con código Smalltalk, se utilizan todas las características del lenguaje: programación orientada a objetos , variables , colecciones , iteradores y aleatoriedad para obtener un boceto ligeramente diferente en cada ejecución.

Un boceto de Smalltalk se edita y prueba con el editor de bocetos de Smalltalk . Dicho boceto se puede depurar y ejecutar paso a paso. Su código se guarda, como cualquier código fuente, en un archivo de texto externo codificado en UTF-8 para admitir el lenguaje nativo.

Triángulo de Sierpinski

Aquí se muestra cómo programar un triángulo de Sierpinski de forma recursiva. Su vértice externo rojo es móvil.

Triángulo de Sierpinski interactivo calculado
| triángulo c | c := DrGeoSketch nuevo . triángulo := [ : s1 : s2 : s3 : n | c segmento: s1 a: s2 ; segmento: s2 a: s3 ; segmento: s3 a: s1 . n > 0 si es verdadero: [ triángulo valor: s1 valor: ( c medioDe: s1 y: s2 ) ocultar valor: ( c medioDe: s1 y: s3 ) ocultar valor: n - 1 . triángulo valor: ( c medioDe: s1 y: s2 ) ocultar valor: s2 valor: ( c medioDe: s2 y: s3 ) ocultar valor: n - 1 . triángulo valor: ( c medioDe: s1 y: s3 ) ocultar valor: ( c medioDe: s2 y: s3 ) ocultar valor: s3 valor: n - 1 ]] . valor del triángulo : 0 @ 3 valor: 4 @ -3 valor: -4 @ -3 valor: 3 . ( punto c : 0 @ 3 ) mostrar

espiral de Fibonacci

Una espiral de Fibonacci programada [ 11 ] con transformaciones geométricas (rotación, traslación y homotecia). Los puntos a y b del boceto interactivo resultante son móviles.

Espiral de Fibonacci interactiva computarizada
| forma del lienzo alfa fibo abms | lienzo := DrGeoSketch nuevo . alfa := ( lienzo freeValue: -90 gradosARadianes ) ocultar . forma := [ : c : o : f | | ep | e := ( lienzo rotate: o centro: c ángulo: alfa ) ocultar . ( lienzo arcCenter: c desde: o hasta: e ) grande . p := lienzo translate: e vector: ( lienzo vector: c hasta: o ) ocultar . ( lienzo polygon: { c . o . p ocultar . e }) nombre: f . e ] . fibo := [ ] . fibo := [ : f : o : c : k | | e f1 f2 f3 c2 | "f1: término Fn-1, f2: término Fn, o y c: origen y centro del brazo espiral e: extremo del brazo espiral" f1 := f primero . f2 := f segundo . f3 := f1 + f2 . e := valor de forma : c valor: o valor: f3 . c2 := ( escala del lienzo : c centro: e factor: f3 / f2 ) ocultar . k > 0 si es verdadero: [ valor fibo : { f2 . f3 } valor: e valor: c2 valor: k - 1 ]] .a := punto del lienzo : 1 @ 0 . b := punto del lienzo : -1 @ 0 . m := ( centro del lienzo : a y: b ) ocultar . s := valor de la forma : m valor: a valor: 1 . valor de la forma : m valor: s valor: 1 . valor de fibo : { 1 . 2 } valor: b valor: a valor: 10

algoritmo de Newton-Raphson

Smalltalk sktech se puede utilizar para diseñar bocetos interactivos que ilustren un método de análisis numérico. Aquí se muestra el algoritmo de Newton-Raphson en una iteración de 5 pasos.

Algoritmo interactivo de Newton-Raphson calculado
| boceto f df xn ptA ptB | boceto := DrGeoSketch new axesOn . xn := 2 . f := [ : x | x cos + x ] . "Número de derivada" df := [ : x | ( valor f : x + 1e-8 ) - ( valor f : x ) * 1e8 ] . trazado de boceto : f desde: -20 hasta: 20 . ptA := ( punto de boceto : xn @ 0 ) grande ; nombre: 'Arrastrame' . Repetir 5 veces: [ ptB := punto de boceto : [ : pt | punto pt x @ ( valor f : punto pt x )] padre: ptA . ocultar ptB . ( segmento de boceto : ptA a: ptB ) flecha hacia adelante punteada . ptA := punto de boceto : [ : pt | | x | x := pt punto x . x - ( ( valor f : x ) / ( valor df : x ) ) @ 0 ] padre: ptB . ptA ocultar . ( segmento de boceto : ptB a: ptA ) flecha hacia adelante punteada ] .

Idiomas regionales

Los bocetos de Smalltalk se pueden programar en idiomas nativos, actualmente en francés y español. Se pueden añadir más idiomas nativos.

Premios

  • Premios ESUG a la Innovación Tecnológica (Ámsterdam, 2008)
  • Premios AFUL al Software Libre (París, 2000)

Véase también

Referencias

  1. CK Hung (2016). "Dibujo de la trayectoria parabólica de un objeto bajo la gravedad" (PDF) . Consultado el 14 de enero de 2024 .
  2. A. Centomo (2003). «Dr. Geo e la Geometria Tolemaica» (en italiano) . Consultado el 13 de enero de 2024 .
  3. A. Centomo, F. Cámpora (2002). «Geometria e programmazione con Dr. Geo» (en italiano) . Consultado el 14 de enero de 2024 .
  4. V. Freudenberg, Y. Ohshima, S. Wallace (2009). Etoys para un portátil por niño . C5.2009 . pp. 57–67 . {{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace )
  5. G. Melo, A. Machado, A. Miranda (2014). "El impacto de un programa de una computadora portátil por niño en el aprendizaje: evidencia de Uruguay" (PDF) . Recuperado el 14 de enero de 2024 .{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace )
  6. C. Whittum (2016). "Comienza con Dr. Geo para geometría" . opensource.com . Consultado el 14 de enero de 2024 .
  7. JR Fernández García; C. Schnober (junio de 2006). "Geometría interactiva con Dr. Geo MATH HELPER" (PDF) . Linux Magazine . Consultado el 14 de enero de 2024 ..
  8. A. Busser (2011). "Dr. Geo, un docteur qui peut s'opérer tout seul" [ Dr. Geo, un médico que puede realizar una cirugía por sí solo ] (en francés). revista.sesamath.net . Consultado el 13 de enero de 2024 .
  9. Tutorial en vídeo sobre scripts de Smalltalk
  10. Demostración en vídeo de un boceto programado
  11. H. Fernandes (marzo de 2016). "Espiral de Fibonacci" . Consultado el 6 de enero de 2024 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=DrGeo&oldid=1351138638 "