DrGeo


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

GNU Dr. Geo es un software de geometría interactiva que permite a sus usuarios diseñar y manipular bocetos geométricos interactivos. Es un software gratuito (el código fuente, las traducciones, los iconos y el instalador se publican bajo licencia GNU GPL ), creado por Hilaire Fernandes, es parte del proyecto GNU . Se ejecuta sobre un sistema gráfico Morphic (lo que significa que se ejecuta en Linux, Mac OS, Windows, Android). La versión actual de Dr. Geo también se llama Dr. Geo II. Históricamente, Dr. Geo se desarrolló en C ++ y Dr. Geo II es una reescritura completa usando Pharo que sucedió en 2005. Este artículo se refiere a la versión más reciente.

Objetos

Dr. Geo manipula diferentes tipos de objetos como puntos, líneas, círculos, bloques de código.

Puntos

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

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

Líneas

Dr. Geo está equipado con la línea clásica , rayo , segmento y vector .

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

Transformaciones

Además de la línea paralela y perpendicular a través de un punto, Dr. Geo puede aplicar a un punto o 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ñar a Dr. Geo nuevas construcciones. Permite agregar nuevos objetos a Dr. Geo: nuevas transformaciones como inversión de círculo , construcciones tediosas que involucran muchos objetos intermedios o construcciones que involucran script (también llamado macro-script).

Cuando algunos objetos, llamados finales, dependen de otros objetos, llamados iniciales , es posible crear una construcción compleja deduciendo los objetos finales de los objetos iniciales dados por el usuario. Esta es una macroconstrucción , un gráfico de objetos interdependientes.

Programación

El acceso a la programación del usuario es la esencia de Dr. Geo: desde el software, el usuario puede leer, estudiar, modificar y redistribuir directamente la versión modificada de Dr. Geo. Además, se propone la creación de scripts incrustados en el croquis.

El código fuente de Dr. Geo es Pharo . También es el lenguaje utilizado para la programación del usuario: extender Dr. Geo con operaciones de computación arbitrarias (script Pharo) y definir un boceto geométrico completamente con instrucciones de programación (boceto Pharo).

Dr. Geo se envía 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á funcionando. Este diseño, heredado de Pharo, facilita probar nuevas ideas y nuevos diseños.

Guión Pharo

Edición de guiones en vivo

Un script es un objeto de primera clase definido a lo largo del código Dr. Geo. Viene con cero, uno o varios argumentos, de los tipos seleccionados al definir el script. Cuando una instancia de un script se conecta a un lienzo, el usuario primero selecciona sus argumentos en el lienzo con clics del mouse 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 utilizar en cascada, con uno como argumento de otro. [1]

Curva y su tangente calculada con el script Pharo

Los scripts están diseñados para usarse de dos formas diferentes:

  1. Para generar un objeto (es decir, un valor numérico) y mostrar su resultado en el lienzo. Este resultado se puede utilizar al construir objetos posteriores (geométricos o de escritura).
  2. Para acceder a objetos en el lienzo: modelo (MathItem) o vista (Traje) para usos y modificaciones arbitrarios. Por ejemplo para modificar el color de un objeto dado el resultado de un cálculo.

Desde el script, el modelo de argumentos se alcanza con los métodos # arg1, # arg2, etc. La vista de argumentos se alcanza con los métodos # 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, el script

calcular "devuelve el cuadrado de un número" ^  self  arg1  valueItem  squared

crea un objeto numérico, cuyo valor es el cuadrado del objeto de número de argumento. Siempre que se cambia el primer número, el valor devuelto por el script también cambia.

Boceto de Pharo

Los bocetos del Dr. Geo Pharo son bocetos completamente definidos en el lenguaje Pharo. No se trata de construir un boceto con la interfaz gráfica de Dr. Geo, sino de describir un boceto con el lenguaje Pharo. Se proporciona una interfaz de programación con una sintaxis fácil y ligera. [2]

Triángulo de Sierpinski

A continuación se explica cómo programar un triángulo de Sierpinski de forma recursiva:

Triángulo de Sierpinski interactivo calculado
| triángulo c | c  : =  DrGeoSketch  nuevo . triángulo  : = [] . triángulo  : = [ : s1  : s2  : s3  : n  |  segmento c  :  s1  a:  s2 ;  segmento:  s2  a:  s3 ;  segmento:  s3  a:  s1 .  n  > 0  ifTrue: [ valor del triángulo  :  valor s1  : ( c  middleOf: s1  y:  s2 ) ocultar  valor: ( c  middleOf:  s1  y:  s3 ) ocultar  valor:  n - 1 .  valor del triángulo  : ( c  middleOf:  s1  y:  s2 ) ocultar  valor:  s2  valor: ( c  middleOf:  s2  y:  s3 ) ocultar  valor:  n - 1 .  valor del triángulo  : ( c  middleOf:  s1  y: s3 ) ocultar  valor: ( c  middleOf:  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 con transformaciones geométricas (rotación, traslación y homotecia):

Espiral de Fibonacci interactiva computada
| forma de lona alfa fibo abms | lienzo  : =  DrGeoSketch  nueva  pantalla completa . alfa  : = ( lienzo  freeValue:  -90  gradosToRadianos ) ocultar . forma  : = [ : c  : o  : f |  | ep | e  : = ( lienzo  rotar:  o  centro:  c  ángulo:  alfa ) ocultar .	( Lona  arcCenter:  c  a partir de: o  a:  e ) grande . p  : =  lienzo  traducir:  e  vector: ( lienzo  vector:  c  a:  o ) ocultar .	( lienzo  polígono: { 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 & 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  : valor  c  :  valor o  :  f3 . c2  : = ( escala del lienzo  :  centro c  :  factor e  :  f3  /  f2 ) ocultar . k >  0  ifTrue: [ valor de fibo  : { f2 .  f3 } valor:  e  valor:  c2  valor:  k  -  1 ]] .a  : =  punto del lienzo  :  1 @ 0 . b  : =  punto del lienzo  :  -1  @ 0 . m  : = ( lona  middleof:  una  y:  b ) ocultar . s  : =  valor de forma  : valor  m  :  un  valor:  1 . valor de forma  : valor  m  :  valor s  :  1 . valor de fibo  : { 1 .  2 } valor:  b valor:  un  valor:  10

Algoritmo de Newton-Raphson

Pharo sktech se puede utilizar para diseñar un boceto interactivo que demuestre el método de análisis numérico:

Algoritmo de Newton-Raphson interactivo calculado
| croquis f df xn ptA ptB | sketch  : =  DrGeoSketch  new  axesOn . xn  : =  2 . f  : = [ : x  |  x  cos  +  x ] . "Número derivado" df  : = [ : x  | ( valor f  :  x  +  1e-8 ) - ( valor f  :  x ) *  1e8 ] . diagrama de croquis  :  f  de: -20  a:  20 . ptA  : = ( punto de croquis  :  xn @ 0 ) grande ;  nombre:  'Arrástrame' . 5  veces Repita: [ ptB  : =  punto de boceto  : [ : pt  |  pt  punto  x  @ ( valor f  :  pt  punto  x )] padre:  ptA . ptB  ocultar .	( segmento de boceto  :  ptA  a:  ptB) punteado  forwardArrow  . ptA  : =  punto de croquis  : [ : pt  |  | x | x  : =  pt  punto  x . x  - (( valor f  :  x ) / ( valor df  :  x )) @  0 ] padre:  ptB . ptA  ocultar . ( segmento de boceto  :  ptB  a:  ptA ) punteado  flecha hacia adelante ].

Círculo circunscrito en francés

Una versión francesa de la API de bocetos de Pharo hace posible escribir el código fuente en este idioma:

Círculo circunscrito interactivo calculado
| cifra abc m1 m2 | figura  : =  DrGeoSketch  nouveau . figure  pleinEcran ;  afficherGrille ;  afficherAxes . a  : =  figura  segmento De:  2 @  3  a:  0 @ 0 . un  nommer:  'a' . b  : =  figura  segmento De:  0 @ 0  a:  -1 @ 2 . b  nommer:  'b' . c  : =  figura  segmento De: -1 @ 2  a:  2 @ 3 . c  nommer:  'c' . m1  : = ( figura  mediatriz:  a ) couleur:  Color  rojo . m2  : = ( figura  mediatriz:  b ) couleur:  Color  rojo .
( figura  mediatriz:  c ) couleur:  Color  rojo . figura  cercleCentre: ( figura  intersecciónDe:  m1  et:  m2) passantPar:  0 @ 0 . ( punto de cifra  :  0 @ 0 ) montrer

Premios

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

Ver también

  • Construcción de brújula y regla
  • Software de geometría interactiva

Referencias

  1. ^ Video tutorial sobre el script Pharo
  2. ^ Video de demostración en croquis programado

enlaces externos

  • Página web oficial
  • Guía del usuario
  • Descargue el código fuente y las versiones de Windows, Linux y Mac
  • Sitio web oficial de Pharo
Obtenido de " https://en.wikipedia.org/w/index.php?title=DrGeo&oldid=1015969119 "