Articulo de referencia

CarMetal

CaRMetal es un programa de geometría interactiva que hereda el motor de CaR . El software fue creado por Eric Hakenholz en Java . CaRMetal es gratuito y se rige por la licencia ...

CaRMetal es un programa de geometría interactiva que hereda el motor de CaR . El software fue creado por Eric Hakenholz en Java . CaRMetal es gratuito y se rige por la licencia GNU GPL . Conserva gran parte de la funcionalidad de CaR, pero utiliza una interfaz gráfica diferente que, supuestamente, elimina algunos diálogos intermedios y proporciona acceso directo a numerosos efectos. Las construcciones se realizan mediante una paleta principal que contiene atajos útiles, además de las herramientas estándar de compás y regla. Estos incluyen la mediatriz, el círculo que pasa por tres puntos, el arco circuncircular que pasa por tres puntos y la sección cónica que pasa por cinco puntos. También resultan interesantes los lugares geométricos, las funciones, las curvas paramétricas y los gráficos implícitos. El grosor, el color, la etiqueta y otros atributos de los elementos (incluida la denominada propiedad magnética ) se pueden configurar mediante un panel independiente.

CaRMetal también admite una paleta de construcción restringida y configurable, y cuenta con funciones de asignación que utilizan una característica aparentemente única llamada Monkey . CaRMetal dispone de un lenguaje de scripting ( JavaScript ) que permite al usuario crear figuras bastante complejas, como fractales . CaRMetal ofrece varios idiomas, entre ellos francés, inglés, español, alemán, italiano, neerlandés, portugués y árabe.

Interés didáctico

Anticipación

Al trazar una línea paralela , esta sigue el cursor del ratón, lo que facilita formular conjeturas incluso mientras la figura aún está en construcción.

Al seleccionar una herramienta como la paralela a una línea que pasa por un punto o un círculo, el objeto deseado aparece en color amarillo y sigue los movimientos del ratón. Esto permite al usuario formular conjeturas incluso antes de finalizar la construcción. Esta interacción constante entre el alumno y el objeto de experimentación está en consonancia con las teorías didácticas modernas y, desde esta perspectiva, CaRMetal está diseñado para ser utilizado por estudiantes .

Amodalidad

Las ventanas que muestran el historial, la paleta de herramientas y las propiedades del objeto seleccionado se ubican alrededor de la figura, nunca encima. Estas ventanas no son modales, ya que nunca ocultan la construcción. Por ejemplo, cuando el usuario desea cambiar el color de un polígono, ve el nuevo color inmediatamente.

Transformaciones

Cuando se ha definido una transformación (por ejemplo, una macro ) que convierte puntos en puntos, esta transformación también puede aplicarse a curvas. Esto permite, una vez más, que el estudiante vea las propiedades de la transformación de un vistazo, incluso antes de aplicarla.

Tareas

el botón del mono

Los cuadernos de ejercicios (véase más abajo) se pueden exportar como archivos HTML , con una paleta de herramientas restringida (por ejemplo, si solo se dejan las herramientas de intersección y círculo, el alumno puede construir únicamente con compás). Para crear una tarea, el profesor elige los objetos iniciales, los objetos que el alumno debe crear y escribe un texto que explica lo que debe hacer. Desde 2010, cuando el alumno termina la construcción y quiere probarla, se prueban variaciones aleatorias (con una herramienta llamada Monkey ) y se le asigna una nota de calidad (en realidad, un porcentaje de construcciones correctas entre las variaciones).

Macros

Las macros se pueden organizar en una jerarquía de carpetas, lo que facilita la transformación de CaRMetal en una herramienta que permite explorar geometrías no euclidianas.

Características especiales

Cuadernos de ejercicios

Desde 2010, CaRMetal utiliza un sistema de carpetas que permite colocar varias figuras en una sola carpeta, denominada "libro de trabajo". Es fácil navegar entre las hojas de un libro de trabajo, duplicar una hoja (o figura) y fusionar varios libros de trabajo en uno solo. CaRMetal permite incluir archivos de imagen y archivos JavaScript en una figura. La extensión de archivo de una figura es .zir, al igual que en CaR (por cierto, existe una gran compatibilidad entre ambos programas), y la estructura del archivo es una metadescripción de la figura en lenguaje XML . Un libro de trabajo se guarda como una carpeta comprimida que contiene todas las figuras .zir , además de las imágenes incluidas ( GIF , JPEG o PNG ) y un archivo de preferencias .

Visualización numérica

Un ejemplo de una matriz que puede modificarse en tiempo real con los extremos de los vectores y visualizarse con LaTeX .

Es posible convertir cualquier medida numérica de la figura en texto, para fines de visualización. Por ejemplo, si un segmento llamado 's1' tiene una longitud de 4,5 unidades, escribir

"The length of the segment is %s1%"

Crea una cadena de caracteres que se muestra como «La longitud del segmento es 4,5 ». Esta cadena de caracteres puede incluirse en la figura, pero también puede utilizarse como alias de un objeto (por ejemplo, s1 ) o como nombre de una expresión. Por supuesto, cuando se mueve uno de los extremos del segmento con el ratón, el texto se edita en tiempo real. Esto se denomina texto dinámico.

CaRMetal utiliza HotEqn y JLatexMath , que son analizadores sintácticos de LaTeX , y es posible escribir fórmulas de LaTeX dentro de objetos de texto. Por ejemplo, si poly1 es un cuadrado y se desea encontrar un círculo cuya área sea la misma que la del cuadrado, se puede construir una expresión de texto como esta:

"The radius of the circle would be $\sqrt{\frac{%poly1%}{\pi}}\simeq %sqrt(poly1/pi)%$"

Esto puede generar un texto como este:El radio del círculo sería 4π1.13{\displaystyle {\mbox{El radio del círculo sería }}{\sqrt {\frac {4}{\pi }}}\simeq 1.13}

La fuerza de esta función reside en el hecho de que es posible mezclar textos dinámicos con fórmulas LaTeX, obteniendo así LaTeX dinámico (¡cuando cambia el tamaño del cuadrado, también cambia la visualización!).

3D

Un dodecaedro se puede girar con el ratón.

CaRMetal permite al usuario establecer algunas propiedades de los objetos, como su color o el hecho de que sean visibles o no, de forma condicional . Además, cada objeto puede tener un número de capa. Una aplicación importante de estas características fue el modo 2.5D de CaRMetal, que emula geometría 3D. Desde la versión 4.0, CaRMetal tiene un modo 3D real que genera un tetraedro regular , un cubo , un diamante y un dodecaedro regular . También es posible vincular un punto al interior de un círculo o polígono (3D). Esta característica, heredada de CaR , se basa en coordenadas baricéntricas . Desde la versión 4.1, CaRMetal permite algunos gráficos de tortuga (programados en JavaScript) tanto en 2D como en 3D.

Magnetismo

Un punto puede volverse magnético con una distancia y una lista de objetos a los que se siente atraído siempre que esté suficientemente cerca de uno o varios de estos objetos (suficientemente cerca significa que la distancia entre ellos es menor que la distancia mínima, que es una propiedad del punto y se mide en píxeles ). Por ejemplo, cuando un punto se siente atraído por un conjunto finito de puntos, que a su vez son fijos, puede explorar una geometría finita .

Red

Desde 2013 existe la posibilidad de ejecutar una figura CaRMetal como servidor (normalmente, la del profesor) y varias como clientes. Por lo tanto, es posible

  • enviar la figura al servidor
  • para que el servidor envíe una cifra correcta a un estudiante que perdió la suya o no puede crearla en los tiempos solicitados.
  • recopilar datos, geométricos o no, dentro de una sola figura (la del servidor)
  • manipular la misma figura al mismo tiempo, para varias personas que comparten su trabajo
  • para enviar y recibir programas JavaScript (ver más abajo)
  • para conversar dentro de una figura compartida...

JavaScript dentro de CaRMetal

La herramienta de scripts combina algoritmos y geometría . Este tipo de herramientas también existen en DrGeo , Kig y Cinderella (software) . Para ejecutar un script, basta con hacer clic en el icono que representa un semáforo . Un script puede asociarse a uno o varios puntos, de modo que cualquier movimiento de uno de estos puntos ejecuta el script. Esto permite una especie de cinemática inversa, similar a la de GeoLicia .

Variables

Para crear un objeto geométrico en JavaScript, basta con hacer clic en el icono que lo representa. La instrucción JavaScript aparece en el editor con parámetros predefinidos. El usuario solo tiene que editarlos, sin necesidad de usar mnemotecnia . Sin embargo, al crear un objeto geométrico, la variable que llama a la rutina es en realidad una cadena de caracteres que contiene el nombre del objeto.

Por ejemplo,

a = Punto ( 2 , 3 );

crea un punto, generalmente llamado P1 , y la variable a contiene la cadena "P1". Esto permite referirse al punto por su nombre. Las coordenadas del punto se inicializan, pero el punto aún puede moverse con el uso del ratón. También es posible crear un punto en programación procedimental con

Punto ( "A" , 2 , 3 );

En este caso, el nombre del punto es "A" (a menos que ya exista un objeto llamado "A"), y no se asigna el nombre "A" a ninguna variable.

Entrada-Salida

Para mostrar una variable, existen cuatro maneras:

  1. Crea una expresión dentro de la figura (o muéstrala con una media gráfica como un histograma);
  2. Imprimir, que abre una nueva ventana e imprime el contenido de la variable en ella;
  3. Println que también va a la línea;
  4. Alerta que abre una ventana de alerta, que se cierra tan pronto como el usuario hace clic en Aceptar .

Para introducir una variable, hay

  1. Entrada (¡claro que sí!) que abre una ventana de entrada (con texto) y espera a que se haga clic en Aceptar.
  2. InteractiveInput que permite al usuario elegir un objeto en la figura.

Este paradigma considera que las variables del programa no son necesariamente variables numéricas o de cadena, sino que también pueden actuar sobre objetos gráficos. Esta es una característica común de Kig (pero en este caso, el lenguaje es Python ) y DrGeo (en este caso, con Scheme) .

Instrumentos de cuerda

También es posible establecer las coordenadas de un punto como cadenas de caracteres escritas en el lenguaje de CaRMetal. Por ejemplo, para tener un punto B que sigue a A excepto que las coordenadas de B son enteras (para modelar un entero gaussiano ) se puede escribir

a = Punto ( "2.72" , "3.14" ); b = Punto ( "redondear(x_a)" , "redondear(y_a)" );

Bucles

Como ejemplo, el triángulo de Sierpinski se puede construir como un sistema de funciones iteradas con este script recursivo, que es bastante corto debido a las instrucciones gráficas ya disponibles como MidPoint :

a = Punto ( - 4 , - 2 ); b = Punto ( 4 , - 2 ); c = Punto ( 0 , 4 ); m = Punto ( Math . random (), Math . random ()); SetHide ( m , true ); for ( n = 0 ; n < 2000 ; n ++ ) { dice = Math . ceil ( Math . random () * 3 ); // ¡Un dado de 3 caras! switch ( dice ) { case 1 : { p = PuntoMedio ( a , m ); break ; } case 2 : { p = PuntoMedio ( b , m ); break ; } case 3 : { p = PuntoMedio ( c , m ); break ; } } SetPointType ( p , "punto" ); m = p ; }

Una vez que se ha construido la nube de puntos (¡e incluso mientras el script aún se está ejecutando!), se puede hacer que A , B y C se muevan con el ratón (o automáticamente con el Monkey ): ¡El triángulo es dinámico !

objetos JavaScript

CaRMetal también puede utilizar objetos JavaScript como

  1. matrices, útiles para realizar estadísticas sobre figuras geométricas;
  2. Objeto de fecha, útil para medir el tiempo;
  3. Objetos String y RegExp , que facilitan la implementación de sistemas L ;
  4. Los objetos JavaScript generales se pueden usar para crear nuevos objetos geométricos como números complejos , matrices , etc. Esta programación orientada a objetos funciona de forma muy similar a los scripts de Python de Kig , pero hasta la fecha nadie parece haber publicado nada que la utilice.

Véase también

Referencias

  • Vers des spécifications formelles  : Fondements Mathématiques et Informatiques pour la Géométrie Dynamique, Bernard Genevès (PhD) PDF
  • Busser Alain. TP con JavaScript con CaRMetal. Boletín del APMEP, 487 (2010), p.  191-199.
  • Busser Alain. Un an d'algorithmique avec CaRMetal en Seconde. MathémaTICE, 21 (2010) (artículo en línea:)
  • Martín Yves. Algoritmo e integración de herramientas. Repères IREM, 79 (2010), p.  5-22.
  • Martín Yves. Géométrie repérée dynamique  : une autre voie vers l'algébrisation  ? MathémaTICE, 20 (2010) (disponible en línea:)
  • Martín Yves. Quand la géométrie dynamique rencontre la programmation. En Actes du colloque «  Les mathématiciens et l'enseignement de leur disciplina en France  » ( CIRM , Marsella/Luminy, 15-19 de marzo de 2010) (vídeo en línea:)
  • Martín Yves. CaRMetal, una geometría dinámica y enriquecedora. Expresiones, 35 (2010), p.  165-272PDF
  • Página web anterior de CaRMetal (hasta la versión 3.8.2, pero con más explicaciones en inglés, muchas de las cuales parecen seguir siendo válidas).
  • Vídeos que muestran la red de un icosaedro truncado, desplegada y construida dinámicamente con JavaScript bajo CaRMetal.