CarMetal

Интерактивная геометрическая программа
CarMetal
Оригинальный автор(ы)Эрик Хакенхольц
Разработчик(и)Эрик Хакенхольц, Патрис Дебрабан, Пьер-Марк Маза, Ален Бюссер
Первоначальный выпуск28 октября 2006 г. ( 2006-10-28 )
Стабильный релиз
4.3 / 11 сентября 2020 г. ; 4 года назад ( 2020-09-11 )
Репозиторийникто
Написано вЯва
ПлатформаЯва
ТипПрограммное обеспечение для интерактивной геометрии
ЛицензияСтандартная общественная лицензия GNU
Веб-сайтhttps://carmetal.en.uptodown.com/windows

CaRMetal — это интерактивная геометрическая программа, унаследовавшая движок CaR . Программное обеспечение было создано Эриком Хакенхольцем на Java . CaRMetal бесплатен по лицензии GNU GPL . Он сохраняет часть функциональности CaR, но использует другой графический интерфейс, который якобы устраняет некоторые промежуточные диалоги и обеспечивает прямой доступ к многочисленным эффектам. Построения выполняются с помощью основной палитры, которая содержит некоторые полезные сочетания клавиш в дополнение к стандартным инструментам циркуля и линейки. К ним относятся перпендикулярный биссектриса, окружность через три точки, описанная дуга через три точки и коническое сечение через пять точек. Также интересны геометрические места, функции, параметрические кривые и неявные графики. Толщина элемента, цвет, метка и другие атрибуты (включая так называемое магнитное свойство) могут быть установлены с помощью отдельной панели.

CaRMetal также поддерживает настраиваемую ограниченную палитру построения и имеет возможности назначения, которые используют, по-видимому, уникальную функцию под названием Monkey . CaRMetal имеет скриптовый язык ( JavaScript ), который позволяет пользователю строить довольно сложные фигуры, такие как фракталы . CaRMetal имеет несколько локалей, включая французский, английский, испанский, немецкий, итальянский, голландский, португальский и арабский.

Дидактический интерес

Ожидание

При построении параллельной линии она следует за мышью, что позволяет легко высказывать предположения, даже когда фигура еще находится в стадии построения.

При выборе инструмента, например, параллельно линии, проходящей через точку, или окружности, предполагаемый объект отображается желтым цветом и следует за движениями мыши. Это позволяет пользователю делать предположения еще до того, как конструкция будет завершена. Это постоянное взаимодействие между учеником и объектом эксперимента находится в фазе с современными теориями о дидактике , и с этой точки зрения CaRMetal предназначен для использования студентами .

Амодальность

Окна, которые показывают историю, палитру инструментов, свойства выбранного объекта, находятся вокруг фигуры и никогда над ней. Эти окна не являются модальными в том смысле, что они никогда не скрывают конструкцию. Например, когда пользователь хочет изменить цвет многоугольника, он сразу же видит новый цвет.

Трансформации

Когда преобразование (например, макрос ) определено таким образом, что оно преобразует точки в точки, это преобразование может быть применено и к кривым. Опять же, это позволяет обучающемуся субъекту увидеть свойства преобразования с первого взгляда, даже до того, как преобразование фактически было применено.

Задания

кнопка обезьяны

Рабочие тетради (см. ниже) можно экспортировать в виде HTML- файлов с ограниченной палитрой инструментов (например, оставив только инструменты пересечения и окружности, ученик может построить что-то только с помощью циркуля). Чтобы создать задание, учитель выбирает исходные объекты, объекты, которые должен создать ученик, и пишет текст, объясняющий, что нужно сделать. С 2010 года, когда ученик заканчивает построение и хочет его проверить, проверяются случайные варианты (с помощью инструмента Monkey ), и ученику приписывается качественная заметка (фактически, процент хороших конструкций среди вариантов).

Макросы

Макросы можно организовать в иерархию папок, что позволяет легко превратить CaRMetal в инструмент, позволяющий исследовать неевклидовы геометрии.

Особые возможности

Рабочие тетради

С 2010 года CaRMetal использует систему папок, позволяющую помещать несколько рисунков в одну папку, называемую «рабочая книга». Легко перемещаться между листами рабочей книги, дублировать лист (или рисунок), объединять несколько рабочих книг в одну. CaRMetal позволяет включать в рисунок файлы изображений и файлы JavaScript. Расширение файла рисунка — zir , как в CaR (кстати, между обоими программами много совместимости), а структура файла — это метаописание рисунка на языке XML . Но рабочая книга сохраняется как сжатая папка, содержащая все рисунки zir , а также включенные изображения ( GIF , JPEG или PNG ) и файл настроек .

Цифровой дисплей

Пример матрицы , которую можно изменять в реальном времени с помощью конечных точек векторов и отображать с помощью LaTeX .

Можно преобразовать любую числовую меру фигуры в текст для целей отображения. Например, если сегмент с именем '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)%$"

Это может дать такой текст: Радиус окружности будет равен  4 π 1.13 {\displaystyle {\mbox{Радиус окружности будет равен }}{\sqrt {\frac {4}{\pi }}}\simeq 1.13}

Преимущество этой функции в том, что можно смешивать динамические тексты с формулами 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».

Ввод-вывод

Для вывода переменной есть четыре способа:

  1. Создайте выражение внутри рисунка (или отобразите его с помощью графического средства, например, гистограммы);
  2. Печать , которая открывает новое окно и печатает в нем содержимое переменной;
  3. Println , который также переходит в строку;
  4. Оповещение , которое открывает окно оповещения, которое закрывается, как только пользователь нажимает кнопку «ОК» .

Для ввода переменной есть

  1. Ввод (еще бы!), который открывает окно ввода (с текстом) и ждет нажатия кнопки ОК
  2. InteractiveInput , который позволяет пользователю выбрать объект на рисунке

Эта парадигма рассматривает переменные программы не обязательно как числовые или строковые переменные, но может также воздействовать на графические объекты. Это общая черта с Kig (но в этом случае языком является Python (язык) ) и DrGeo (в этом случае с Scheme (язык) ).

Струны

Также возможно задать координаты точки как строки символов , записанные на языке CaRMetal. Например, чтобы иметь точку B , которая следует за A, за исключением того, что координаты B являются целыми числами (для моделирования гауссовского целого числа ), можно написать

a = Точка ( "2,72" , "3,14" ); b = Точка ( "round(x_a)" , "round(y_a)" );

Петли

Например, треугольник Серпинского можно построить как итеративную систему функций с помощью этого рекурсивного скрипта, который довольно короткий из-за уже имеющихся графических инструкций, таких как MidPoint :

a = Point ( -4 , -2 ) ; b = Point ( 4 , -2 ); c = Point ( 0,4 ) ; m = Point ( Math.random ( ) , Math.random ()); SetHide ( m , true ) ; for ( n = 0 ; n < 2000 ; n ++ ) { dice = Math.ceil ( Math.random ( ) * 3 ) ; // Трехгранная игральная кость! switch ( dice ){ case 1 : { p = MidPoint ( a , m ) ; break ; } case 2 : { p = MidPoint ( b , m ) ; break ; } case 3 : { p = MidPoint ( c , m ); break ; } } SetPointType ( p , " point " ) ; m = p ; }          

После того, как облако точек создано (и даже во время работы скрипта!), можно заставить A , B и C двигаться с помощью мыши (или автоматически с помощью Monkey ): Треугольник динамичен !

JavaScript-объекты

CaRMetal также может использовать объекты JavaScript, такие как

  1. массивы, полезные для составления статистики геометрических фигур;
  2. объект даты, полезный для измерения времени;
  3. Объекты String и RegExp , которые упрощают реализацию L-систем ;
  4. Общие объекты JavaScript можно использовать для создания новых геометрических объектов, таких как комплексные числа , матрицы и т. д. Это объектно-ориентированное программирование во многом похоже на скрипты Кига на Python , но на сегодняшний день никто, похоже, ничего не опубликовал с его использованием.

Смотрите также

Ссылки

  • Vers des specifications formelles: Fondements Mathématiques et Informatiques pour la Géométrie Dynamique, Бернар Женевес (доктор философии) PDF
  • Бюссер Ален. TP с использованием JavaScript с CaRMetal. Бюллетень APMEP, 487 (2010), с. 191-199.
  • Бюссер Ален. Алгоритм с CaRMetal в секунду. MathémaTICE, 21 (2010) (онлайн-статья: [1])
  • Мартин Ив. Алгоритмическая и интеграционная работа. Репер IREM, 79 (2010), с. 5-22.
  • Мартин Ив. Геометрия повторяется динамической: une autre voie vers l'algébrisation? MathémaTICE, 20 (2010) (доступно онлайн: [2])
  • Мартин Ив. Когда динамическая геометрия встречается с программированием. В Actes du Colloque «Les Mathématiciens et l'enseignement de Leur Discipline en France» ( CIRM , Марсель/Люмини, 15-19 марта 2010 г.) (видео онлайн: [3])
  • Мартин Ив. CARMetal — обогащенная динамическая геометрия. Выражения, 35 (2010), с. 165-272 PDF
  • старый сайт CaRMetal (до версии 3.8.2, но с большим количеством пояснений на английском языке, большая часть которых, по-видимому, остается актуальной)
  • видео, демонстрирующее развертку усеченного икосаэдра, развернутую и динамически построенную с помощью JavaScript под CaRMetal
Взято с "https://en.wikipedia.org/w/index.php?title=CaRMetal&oldid=1132267636"