Оригинальный автор(ы) | Эрик Хакенхольц |
---|---|
Разработчик(и) | Эрик Хакенхольц, Патрис Дебрабан, Пьер-Марк Маза, Ален Бюссер |
Первоначальный выпуск | 28 октября 2006 г. ( 2006-10-28 ) |
Стабильный релиз | 4.3 / 11 сентября 2020 г. ( 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 ) и файл настроек .
Можно преобразовать любую числовую меру фигуры в текст для целей отображения. Например, если сегмент с именем '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 (при изменении размера квадрата меняется и отображение)!
CaRMetal позволяет пользователю устанавливать некоторые свойства объектов, такие как их цвет или тот факт, что они видны или нет, как условные . Также каждый объект может иметь номер слоя. Важным применением этих функций стал режим 2.5D CaRMetal, эмулирующий трехмерную геометрию. Начиная с версии 4.0 CaRMetal имеет настоящий 3D-режим, который предлагает правильный тетраэдр , куб , ромб и правильный додекаэдр . Также возможно привязать точку к внутренней части (3D) круга или многоугольника. Эта функция, унаследованная от CaR , основана на барицентрических координатах . Начиная с версии 4.1 CaRMetal допускает некоторую графику черепах (запрограммированную на JavaScript) как в 2D, так и в 3D.
Точку можно сделать магнитной с расстоянием и списком объектов, к которым она притягивается всякий раз, когда точка находится достаточно близко к одному или нескольким из этих объектов (достаточно близко означает, что расстояние между ними меньше минимального расстояния, которое является свойством точки и измеряется в пиксельных единицах). Например, когда точка притягивается к конечному набору точек, которые сами по себе фиксированы, она может исследовать конечную геометрию .
С 2013 года появилась возможность запускать одну фигуру CaRMetal как сервер (обычно учительскую) и несколько как клиентов. Таким образом, возможно
Инструмент скрипта смешивает алгоритмику и геометрию . Такие инструменты скриптования существуют также в DrGeo , Kig и Cinderella (программное обеспечение) . Чтобы запустить скрипт, щелкните по значку, представляющему светофор . Скрипт может быть прикреплен к одной или нескольким точкам, так что любое движение одной из этих точек будет запускать скрипт. Это позволяет использовать своего рода обратную кинематику , как в GeoLicia.
Чтобы создать геометрический объект в JavaScript, достаточно щелкнуть по иконке, представляющей объект. Инструкция JavaScript появляется в редакторе с предопределенными параметрами. Затем пользователю остается только отредактировать их, и ему не нужно использовать мнемотехнику . Но когда создается геометрический объект, переменная, вызвавшая процедуру, на самом деле является строкой символов , содержащей имя объекта.
Например,
а = Точка ( 2 , 3 );
создает точку, обычно называемую P1 , а переменная a содержит строку "P1". Это позволяет ссылаться на точку по ее имени. Координаты точки инициализируются, но точка все еще может перемещаться с помощью мыши. Также возможно создать точку в процедурном программировании с помощью
Точка ( «А» , 2 , 3 );
В этом случае имя точки — «A» (если только уже нет объекта с именем «A»), и никакая переменная не присваивается имени «A».
Для вывода переменной есть четыре способа:
Для ввода переменной есть
Эта парадигма рассматривает переменные программы не обязательно как числовые или строковые переменные, но может также воздействовать на графические объекты. Это общая черта с 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 ): Треугольник динамичен !
CaRMetal также может использовать объекты JavaScript, такие как