КарМеталл
![]() | |
![]() | |
Оригинальный автор(ы) | Эрик Хакенхольц |
---|---|
Разработчик(и) | Эрик Хакенхольц, Патрис Дебрабан, Пьер-Марк Маза, Ален Бюссер |
Первоначальный выпуск | 28 октября 2006 г. |
Стабильная версия | 4.3
/ 11 сентября 2020 г |
Репозиторий | никто |
Написано в | Ява |
Платформа | Ява |
Тип | Программное обеспечение для интерактивной геометрии |
Лицензия | Стандартная общественная лицензия 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 ) и файл настроек .
Числовой дисплей
[ редактировать ]
Любую числовую величину фигуры можно преобразовать в текст для целей отображения. Например, если длина сегмента с именем «s1» составляет 4,5 единицы, напишите
"The length of the segment is %s1%"
создает строку символов, которая отображается как Длина сегмента 4,5 . Эту строку символов можно включить в рисунок, а также установить как псевдоним объекта (например, s1 ) или имя выражения. Конечно, когда один из концов сегмента перемещается с помощью мыши, текст редактируется в реальном времени. Это называется динамическим текстом.
CaRMetal использует HotEqn и JLatexMath , которые являются анализаторами LaTeX , и внутри текстовых объектов можно писать формулы LaTeX. Например, если поли1 — это квадрат и нужно найти круг, площадь которого равна площади квадрата, можно построить такое текстовое выражение:
"The radius of the circle would be $\sqrt{\frac{%poly1%}{\pi}}\simeq %sqrt(poly1/pi)%$"
Это может дать такой текст:
Сила этой функции заключается в том, что можно смешивать динамические тексты с формулами LaTeX, получая динамический LaTeX (при изменении размера квадрата меняется и отображение)!
3D
[ редактировать ]
CaRMetal позволяет пользователю устанавливать некоторые свойства объектов, такие как их цвет или тот факт, что они видимы или нет, как условные . Также каждый объект может иметь номер слоя. Важным применением этих функций стал режим 2.5D CaRMetal, имитирующий 3D-геометрию. Начиная с версии 4.0 CaRMetal имеет настоящий 3D-режим, в котором отображаются правильный тетраэдр , куб , ромб и правильный додекаэдр . Также возможно привязать точку к внутренней части (3D) круга или многоугольника. Эта функция, унаследованная от CaR , основана на барицентрических координатах . Начиная с версии 4.1, CaRMetal допускает некоторую черепаховую графику (запрограммированную на JavaScript) как в 2D, так и в 3D.
Магнетизм
[ редактировать ]Точку можно сделать магнитной с помощью расстояния и списка объектов, к которым она притягивается, всякий раз, когда точка находится достаточно близко к одному или нескольким из этих объектов (достаточно близко означает, что расстояние между ними меньше минимального расстояния, которое является свойством точке и измеряется в пиксельных единицах). Например, когда точка притягивается к конечному набору точек, которые сами по себе фиксированы, она может исследовать конечную геометрию .
Сеть
[ редактировать ]С 2013 года появилась возможность запускать одну фигурку CaRMetal в качестве сервера (обычно учителя) и несколько в качестве клиентов. Следовательно, возможно
- отправить свою фигуру на сервер
- для сервера, чтобы отправить правильную фигуру студенту, который потерял свою фигуру или не может ее создать в запрошенное время
- собирать данные, геометрические или нет, в пределах одной фигуры (серверной)
- манипулировать одной и той же фигурой одновременно для нескольких людей, которые разделяют свою работу
- для отправки и получения программ JavaScript (см. ниже)
- пообщаться в рамках общей фигуры...
JavaScript внутри CaRMetal
[ редактировать ]Инструмент-скрипт смешивает алгоритмику и геометрию . Подобные инструменты сценариев существуют также в DrGeo , Kig и Cinderella (программное обеспечение) . Чтобы запустить скрипт, нужно щелкнуть значок, изображающий светофор . Скрипт может быть привязан к одной или нескольким точкам, чтобы любое перемещение одной из этих точек запускало скрипт. Это позволяет реализовать некоторую инверсную кинематику, очень похожую на GeoLicia .
Переменные
[ редактировать ]Чтобы создать геометрический объект в JavaScript, достаточно щелкнуть значок, изображающий объект. Инструкция JavaScript отображается в редакторе с предопределенными параметрами. В этом случае пользователю остается только редактировать их, и ему не нужно использовать мнемотехнику . Но когда создается геометрический объект, переменная, вызывающая процедуру, на самом деле представляет собой строку символов , содержащую имя объекта.
Например,
a=Point(2,3);
создает точку, обычно называемую P1 , а переменная a содержит строку «P1». Это позволяет обращаться к точке по ее имени. Координаты точки инициализируются, но точка по-прежнему может перемещаться с помощью мыши. Также возможно создать точку в процедурном программировании с помощью
Point("A",2,3);
В этом случае имя точки — «A» (если уже не существует объекта с именем «A»), и для имени «A» не задано никакой переменной.
Ввод-вывод
[ редактировать ]Вывести переменную можно четырьмя способами:
- Создайте выражение внутри фигуры (или отобразите ее с помощью графического средства, например гистограммы);
- Print — открывает новое окно и печатает в нем содержимое переменной;
- Println, который также идет в строку;
- Оповещение , которое открывает окно оповещения, которое закрывается, как только пользователь нажимает «ОК» .
Чтобы ввести переменную, есть
- Ввод (вероятно!), который открывает окно ввода (с текстом) и ждет нажатия ОК.
- InteractiveInput, который позволяет пользователю выбирать объект на рисунке.
Эта парадигма рассматривает переменные программы не обязательно как числовые или строковые переменные, но также могут действовать и на графические объекты. Это общая черта с Kig (но в данном случае языком является Python (язык) ) и DrGeo (в данном случае со Scheme (язык) ).
Струны
[ редактировать ]Также возможно задать координаты точки в виде строк символов, написанных на языке CaRMetal. Например, чтобы иметь точку B , которая следует за A, за исключением того, что координаты B являются целыми числами (для моделирования целого числа по Гауссу ), можно написать
a=Point("2.72","3.14");
b=Point("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); //A 3-faces dice!
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 перемещаться с помощью мыши (или автоматически с помощью Обезьяны ): Треугольник является динамическим !
Объекты JavaScript
[ редактировать ]CaRMetal также может использовать объекты JavaScript, такие как
- массивы, полезные для статистики геометрических фигур;
- объект даты, полезный для измерения времени;
- Объекты String и RegExp , упрощающие реализацию L-систем ;
- Общие объекты JavaScript можно использовать для создания новых геометрических объектов, таких как числа , матрицы и т. д. Это объектно-ориентированное программирование во многом похоже на Кига сценарии Python комплексные , но на сегодняшний день, похоже, никто ничего не публиковал с его использованием.
См. также
[ редактировать ]Ссылки
[ редактировать ]- К формальным спецификациям: Основы математики и информатики для динамической геометрии, Бернар Женевес (доктор философии) PDF
- Бюссер Ален. ТП под JavaScript с CaRMetal. Бюллетень APMEP, 487 (2010), с. 191-199.
- Бюссер Ален. Один год изучения алгоритмики с CaRMetal в средней школе. MathémaTICE, 21 (2010) (онлайн-статья: [1] )
- Мартин Ив. Алгоритма и интеграция инструментов. Контрольные показатели IREM, 79 (2010), с. 5-22.
- Мартин Ив. Динамическая размеченная геометрия: еще один путь к алгебраизации? MathémaTICE, 20 (2010) (доступно онлайн: [2] )
- Мартин Ив. Когда динамическая геометрия встречается с программированием. В материалах конференции «Математики и преподавание их дисциплин во Франции» ( CIRM , Марсель/Люмини, 15-19 марта 2010 г.) (видео онлайн: [3] )
- Мартин Ив. CaRMetal, улучшенная динамическая геометрия. Выражения, 35 (2010), с. 165-272 PDF
Внешние ссылки
[ редактировать ]- более старый веб-сайт CaRMetal (до версии 3.8.2, но с более английскими объяснениями, большая часть которых, похоже, остается в силе)
- видеоролики, показывающие сеть усеченного икосаэдра, развернутую и динамически созданную с помощью JavaScript под CaRMetal