CaRMetal - программа интерактивной геометрии, унаследовавшая движок CaR . Программное обеспечение было создано Эриком Хакенхольцем на языке Java . CaRMetal распространяется бесплатно под GNU GPLлицензия. Он сохраняет функциональность CaR, но использует другой графический интерфейс, который якобы устраняет некоторые промежуточные диалоги и обеспечивает прямой доступ к многочисленным эффектам. Конструкции выполняются с использованием основной палитры, которая содержит некоторые полезные ярлыки для построения в дополнение к стандартным инструментам компаса и линейки. К ним относятся серединный перпендикуляр, окружность через три точки, описанная дуга через три точки и коническое сечение через пять точек. Также интересны локусы, функции, параметрические кривые и неявные графики. Толщина элемента, цвет, метка и другие атрибуты (включая так называемое магнитное свойство) могут быть установлены с помощью отдельной панели.
Автор (ы) оригинала | Эрик Хакенхольц |
---|---|
Разработчики) | Эрик Хакенхольц, Патрис Дебрабан, Пьер-Марк Мазат, Ален Буссер |
Первый выпуск | 28 октября 2006 г. |
Стабильный выпуск | 4.3.0 / 5 января 2019 г . |
Репозиторий | никто |
Написано в | Ява |
Платформа | Ява |
Тип | Программное обеспечение для интерактивной геометрии |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | carmetal |
CaRMetal также поддерживает настраиваемую ограниченную палитру построения и имеет возможности назначения, которые используют явно уникальную функцию под названием Monkey . CaRMetal имеет язык сценариев ( JavaScript ), который позволяет пользователю строить довольно сложные фигуры, такие как фракталы . CaRMetal имеет несколько языков, включая французский, английский, испанский, немецкий, итальянский, голландский, португальский и арабский языки.
Дидактический интерес
Предвкушение
Когда кто-то выбирает инструмент, например, параллель с линией, проходящей через точку, или круг, намеченный объект отображается желтым цветом и следует за движениями мыши. Это позволяет пользователю строить догадки еще до завершения строительства. Это постоянное взаимодействие между учеником и объектом эксперимента находится в фазе с современными теориями о дидактике, и, с этой точки зрения, CaRMetal предназначен для использования студентами .
Амодальность
Окна, отображающие историю, палитру инструментов, свойства выбранного объекта, расположены вокруг фигуры, а не над ней. Эти окна не являются модальными окнами в том смысле, что они никогда не скрывают конструкцию. Например, всякий раз, когда пользователь хочет изменить цвет многоугольника, он сразу видит новый цвет.
Трансформации
Когда преобразование (например, макрос ) было определено таким образом, что оно преобразует точки в точки, это преобразование также может применяться к кривым. Опять же, это позволяет обучаемому сразу увидеть свойства преобразования, даже до того, как преобразование было фактически применено.
Задания
Рабочие тетради (см. Ниже) можно экспортировать в виде файлов HTML с ограниченной палитрой инструментов (например, оставив только инструменты пересечения и круга, ученик сможет строить только компас). Чтобы создать задание, учитель выбирает исходные объекты, объекты, которые должен создать ученик, и пишет текст, объясняющий, что нужно сделать. С 2010 года, когда ученик закончил конструкцию и хочет ее проверить, проверяются случайные варианты (с помощью инструмента под названием Обезьяна ), и ученику приписывается примечание о качестве (фактически, процент хороших построений среди вариантов).
Макросы
Макросы могут быть организованы в иерархию папок, что упрощает преобразование CaRMetal в инструмент, позволяющий исследовать неевклидову геометрию.
Особые возможности
Рабочие тетради
С 2010 года CaRMetal использует систему папок, позволяющую помещать несколько рисунков в одну папку, которая называется «рабочая тетрадь». Легко перемещаться между листами книги, дублировать лист (или рисунок), объединять несколько книг в одну. CaRMetal позволяет включать в рисунок файлы изображений и файлы JavaScript. Расширение файла рисунка - zir, как в CaR (кстати, между обоими программами большая совместимость), а файловая структура - это метаописание рисунка на языке XML . Но рабочая книга сохраняется в виде заархивированной папки, содержащей все цифры zir , а также включенные изображения ( GIF , JPEG или PNG ) и файл настроек .
Цифровой дисплей
Можно преобразовать любую числовую меру рисунка в текст для отображения. Например, если сегмент s1 имеет длину 4,5 единицы, запись
"The length of the segment is %s1%"
создает символьную строку, которая отображается как Длина сегмента 4,5 . Эта строка символов может быть включена в рисунок, но также установлена как псевдоним объекта (например, s1 ) или имя выражения. Конечно, когда один из концов сегмента перемещается с помощью мыши, текст редактируется в реальном времени. Это называется динамическим текстом.
CaRMetal использует HotEqn и JLatexMath, которые являются парсерами LaTeX , и можно писать формулы LaTeX внутри текстовых объектов. Например, если poly1 - квадрат, и кто-то хочет найти круг, площадь которого такая же, как у квадрата, можно построить текстовое выражение следующим образом:
"The radius of the circle would be $\sqrt{\frac{%poly1%}{\pi}}\simeq %sqrt(poly1/pi)%$"
Это может дать такой текст:
Сила этой функции заключается в том, что можно смешивать динамические тексты с формулами LaTeX, получая динамический LaTeX (при изменении размера квадрата изменяется и отображение)!
3D
CaRMetal позволяет пользователю устанавливать некоторые свойства объектов, такие как их цвет или то, видны они или нет, как условные . Также каждый объект может иметь номер слоя. Важным применением этих функций был режим 2.5D в CaRMetal, имитирующий трехмерную геометрию. Начиная с версии 4.0 CaRMetal имеет настоящий 3D-режим, в котором есть правильный тетраэдр , куб , ромб и правильный додекаэдр . Также возможно привязать точку к внутренней части (3D) круга или многоугольника. Эта функция, унаследованная от CaR , основана на барицентрических координатах . Начиная с версии 4.1 CaRMetal допускает некоторую графику черепах (запрограммированную на JavaScript) либо в 2D, либо в 3D.
Магнетизм
Точку можно сделать магнитной с помощью расстояния и списка объектов, к которым она притягивается, когда точка достаточно близко к одному или нескольким из этих объектов (достаточно близко означает, что расстояние между ними меньше минимального расстояния, которое является свойством точки и измеряется в пикселях ). Например, когда точка притягивается к конечному набору точек, которые сами фиксированы, она может исследовать конечную геометрию .
Сеть
С 2013 года появилась возможность запускать одну фигурку CaRMetal как сервер (как правило, учительскую) и несколько как клиентов. Следовательно, возможно
- отправить свою фигуру на сервер
- для сервера, чтобы отправить правильную цифру ученику, который потерял свой или не может создать его в запрошенное время
- собирать данные, геометрические или нет, в пределах одной фигуры (серверной)
- для одновременного манипулирования одной и той же фигурой для нескольких людей, которые делят свою работу
- для отправки и получения программ JavaScript (см. ниже)
- общаться в чате с общей фигурой ...
JavaScript внутри CaRMetal
Инструмент-скрипт смешивает алгоритмы и геометрию . Такие скриптовые инструменты существуют также в DrGeo , Kig и Cinderella (программное обеспечение) . Чтобы запустить сценарий, нужно щелкнуть значок светофора . Скрипт может быть прикреплен к одной или нескольким точкам, так что любое движение одной из этих точек запускает скрипт. Это позволяет использовать какую-то инверсную кинематику , как в GeoLicia .
Переменные
Чтобы создать геометрический объект в JavaScript, достаточно щелкнуть значок, представляющий объект. В редакторе появится инструкция JavaScript с предопределенными параметрами. В этом случае пользователю остается только отредактировать их, и ему не нужно использовать мнемотехнику . Но когда создается геометрический объект, переменная, которая вызвала подпрограмму, на самом деле представляет собой символьную строку , содержащую имя объекта.
Например,
а = точка ( 2 , 3 );
создает точку, обычно называемую P1, а переменная a содержит строку «P1». Это позволяет ссылаться на точку по ее имени. Координаты точки инициализированы, но точка все еще может перемещаться с помощью мыши. Также возможно создать точку в процедурном программировании с помощью
Точка ( «А» , 2 , 3 );
В этом случае имя точки - «A» (если уже не существует объекта с именем «A»), и никакая переменная не установлена для имени «A».
Ввод, вывод
Вывести переменную можно четырьмя способами:
- Создайте выражение внутри фигуры (или отобразите с графическим средним значением, например гистограммой);
- Печать, которая открывает новое окно и печатает содержимое переменной в нем;
- Println, который также идет в строку;
- Оповещение, которое открывает окно оповещения, которое закрывается, как только пользователь нажимает кнопку ОК .
Для ввода переменной есть
- Ввод (вы делаете ставку!), Который открывает окно ввода (с текстом) и ждет щелчка по ОК
- InteractiveInput, который позволяет пользователю выбрать объект на рисунке.
Эта парадигма рассматривает переменные программы не обязательно как числовые или строковые переменные, но также могут воздействовать на графические объекты. Это общая функция с Kig (но в данном случае языком является Python (язык) ) и DrGeo (в данном случае - Scheme (язык) ).
Струны
Также возможно установить координаты точки в виде символьных строк, написанных на языке CaRMetal. Например, чтобы иметь точку B, которая следует за A, за исключением того, что координаты B являются целыми числами (для моделирования гауссовского целого числа ), можно написать
a = точка ( «2,72» , «3,14» ); b = точка ( «раунд (x_a)» , «раунд (y_a)» );
Петли
Например, треугольник Серпинского можно построить как систему повторяющихся функций с помощью этого рекурсивного скрипта, который довольно короткий из-за уже доступных графических инструкций, таких как MidPoint :
a = точка ( - 4 , - 2 ); b = точка ( 4 , - 2 ); c = точка ( 0 , 4 ); m = точка ( Math . random (), Math . random ()); SetHide ( m , true ); для ( n = 0 ; n < 2000 ; n ++ ) { dice = Math . ceil ( Math . random () * 3 ); // Трехгранный кубик! переключатель ( игра в кости ) { случай 1 : { p = MidPoint ( a , m ); перерыв ; } случай 2 : { p = MidPoint ( b , m ); перерыв ; } случай 3 : { p = MidPoint ( c , m ); перерыв ; } } SetPointType ( p , "точка" ); m = p ; }
После того, как облако точек было создано (и даже пока сценарий все еще работает!), Можно заставить A , B и C двигаться с помощью мыши (или автоматически с помощью Обезьяны ): Треугольник динамический !
Объекты JavaScript
CaRMetal также может использовать такие объекты JavaScript, как
- массивы, полезные для составления статистики по геометрическим фигурам;
- объект даты, полезный для измерения времени;
- Объекты String и RegExp , упрощающие реализацию L-систем ;
- Объекты Общие JavaScript могут быть использованы для создания новых геометрических объектов , таких как комплексные числа , матрицы и т.д. Это объектно-ориентированное программирование не работает так же, как ИГК «s Python скриптов, но на сегодняшний день не один , кажется, публиковать что - либо с помощью этого.
Смотрите также
- Машина
- Конструкция циркуля и линейки
- Программное обеспечение для интерактивной геометрии
Рекомендации
- Vers des spécifications formelles: Fondements Mathématiques et Informatiques pour la Géométrie Dynamique, Бернар Женевес (доктор философии) PDF
- Буссер Ален. TP с использованием JavaScript и CaRMetal. Бюллетень APMEP, 487 (2010), стр. 191–199.
- Буссер Ален. Un an d'algorithmique avec CaRMetal en Seconde. MathémaTICE, 21 (2010) (онлайн-статья: [1] )
- Мартин Ив. Алгоритм и интеграция инструментов. Repères IREM, 79 (2010), стр. 5-22.
- Мартин Ив. Géométrie repérée dynamic: une autre voie vers l'algébrisation? MathémaTICE, 20 (2010) (доступно на сайте: [2] )
- Мартин Ив. Quand la géométrie Dynamique Rencontre la Programming. In Actes du colloque «Les mathématiciens et l'enseignement de leur дисциплины во Франции» ( CIRM , Марсель / Люмини, 15-19 марта 2010 г.) (видео онлайн: [3] )
- Мартин Ив. CaRMetal, une géométrie Dynamique enrichie. Выражения, 35 (2010), стр. 165-272 PDF
Внешние ссылки
- старый веб-сайт CaRMetal (до версии 3.8.2, но с более английским объяснением, большая часть которого, похоже, остается действительной)
- видеоролики, показывающие усеченную сеть икосаэдра, развернутую и динамически созданную с помощью JavaScript под CaRMetal