CarMetal
Oryginalni autorzy | Erica Hakenholza |
---|---|
Deweloperzy | Eric Hakenholz, Patrice Debrabant, Pierre-Marc Mazat, Alain Busser |
Pierwsze wydanie | 28 października 2006 |
Wersja stabilna | 4.3 / 11 września 2020 r
|
Magazyn | nic |
Napisane w | Jawa |
Platforma | Jawa |
Typ | Oprogramowanie do interaktywnej geometrii |
Licencja | Powszechna Licencja Publiczna GNU |
Strona internetowa | https://carmetal.en.uptodown.com/windows |
CaRMetal to interaktywny program do geometrii , który odziedziczył silnik CaR . Oprogramowanie zostało stworzone przez Erica Hakenholza w Javie . CaRMetal jest darmowy, objęty GNU GPL . Zachowuje pewną funkcjonalność CaR, ale używa innego interfejsu graficznego, który rzekomo eliminuje niektóre pośrednie okna dialogowe i zapewnia bezpośredni dostęp do wielu efektów. Konstrukcje są wykonywane przy użyciu głównej palety, która oprócz standardowych narzędzi kompasu i linijki zawiera kilka przydatnych skrótów konstrukcyjnych. Należą do nich dwusieczna prostopadła, okrąg przechodzący przez trzy punkty, łuk kołowy przechodzący przez trzy punkty i przekrój stożkowy przechodzący przez pięć punktów. Interesujące są również loci, funkcje, krzywe parametryczne i wykresy niejawne. Grubość elementu, kolor, etykietę oraz inne atrybuty (w tym tzw. magnetyczne ) można ustawić za pomocą osobnego panelu.
CaRMetal obsługuje również konfigurowalną ograniczoną paletę konstrukcyjną i ma możliwości przypisania, które wykorzystują pozornie unikalną funkcję o nazwie Monkey . CaRMetal posiada język skryptowy ( JavaScript ), który pozwala użytkownikowi budować dość złożone figury, takie jak fraktale . CaRMetal ma kilka lokalizacji, w tym francuski, angielski, hiszpański, niemiecki, włoski, holenderski, portugalski i arabski.
Zainteresowania dydaktyczne
Oczekiwanie
Kiedy wybiera się narzędzie, takie jak równoległość do linii przechodzącej przez punkt lub okrąg, zamierzony obiekt pojawia się w kolorze żółtym i podąża za ruchami myszy. Pozwala to użytkownikowi na domysły jeszcze przed zakończeniem budowy. Ta ciągła interakcja między uczniem a obiektem eksperymentów jest zgodna z nowoczesnymi teoriami dydaktyki iz tego punktu widzenia CaRMetal ma być używany przez uczniów .
Amodalność
Okna pokazujące historię, paletę narzędzi, właściwości wybranego obiektu znajdują się wokół figury, nigdy nad nią. Okna te nie są oknami modalnymi w tym sensie, że nigdy nie zasłaniają konstrukcji. Na przykład, gdy użytkownik chce zmienić kolor wielokąta, natychmiast widzi nowy kolor.
Transformacje
zdefiniowano transformację (na przykład makro ), która przekształca punkty w punkty, transformację tę można również zastosować do krzywych. Po raz kolejny pozwala to uczącemu się na pierwszy rzut oka zobaczyć właściwości transformacji, nawet zanim transformacja została faktycznie zastosowana.
Zadania
Zeszyty ćwiczeń (patrz poniżej) można wyeksportować jako pliki HTML z ograniczoną paletą narzędzi (na przykład pozostawienie tylko narzędzi do przecinania i okręgu pozwala uczniowi na tworzenie konstrukcji tylko z kompasem). Aby utworzyć zadanie, nauczyciel wybiera początkowe obiekty, przedmioty, które uczeń ma stworzyć, i pisze tekst wyjaśniający, co ma zrobić. Od 2010 roku, kiedy uczeń ukończył konstrukcję i chce ją przetestować, testuje przypadkowe warianty (za pomocą narzędzia o nazwie Małpa ) i przypisuje uczniowi notę jakości (właściwie procent dobrych konstrukcji wśród wariantów).
Makra
Makra mogą być zorganizowane w hierarchię folderów, co ułatwia przekształcenie CaRMetal w narzędzie do eksploracji geometrii nieeuklidesowych.
Cechy szczególne
Zeszyty ćwiczeń
Od 2010 roku CaRMetal stosuje system folderów, który pozwala umieścić kilka rysunków w jednym folderze, zwanym „skoroszytem”. Łatwo jest nawigować między arkuszami skoroszytu, powielać arkusz (lub rysunek), łączyć kilka skoroszytów w jeden. CaRMetal pozwala dołączyć do rysunku pliki graficzne i pliki JavaScript. Rozszerzenie pliku figury to zir jak w CaR (nawiasem mówiąc, oba programy są bardzo kompatybilne), a struktura pliku to metaopis figury w języku XML . Ale skoroszyt jest zapisywany jako spakowany folder zawierający wszystkie zir , a także dołączone obrazy ( GIF , JPEG lub PNG ) i plik preferencji .
Wyświetlacz numeryczny
Możliwe jest przekonwertowanie dowolnej miary liczbowej figury na tekst, w celach wyświetlania. Na przykład, jeśli segment o nazwie „s1” ma długość 4,5 jednostki, zapis
"Długość segmentu to %s1%"
tworzy ciąg znaków, który jest wyświetlany jako Długość segmentu wynosi 4,5 . Ten ciąg znaków można umieścić na rysunku, ale także ustawić jako alias obiektu (na przykład s1 ) lub nazwę wyrażenia. Oczywiście przesuwanie myszką jednym z końców segmentu powoduje edycję tekstu w czasie rzeczywistym. Nazywa się to tekstem dynamicznym.
CaRMetal używa HotEqn i JLatexMath , które są parserami LaTeX i możliwe jest pisanie formuł LaTeX wewnątrz obiektów tekstowych. Na przykład, jeśli poly1 jest kwadratem, a ktoś chce znaleźć okrąg, którego pole jest takie samo jak pole kwadratu, można zbudować wyrażenie tekstowe w następujący sposób:
„Promień okręgu to $\sqrt{\frac{%poly1%}{\pi}}\simeq %sqrt(poly1/pi)%$”
To może dać tekst taki jak ten:
Siła tej funkcji polega na tym, że można mieszać dynamiczne teksty z formułami LaTeX-a, uzyskując dynamiczny LaTeX (gdy zmienia się rozmiar kwadratu, zmienia się też sposób wyświetlania)!
3D
CaRMetal pozwala użytkownikowi ustawić pewne właściwości obiektów, takie jak ich kolor czy fakt, że są widoczne lub nie, jako warunkowe . Również każdy obiekt może mieć numer warstwy. Ważnym zastosowaniem tych funkcji był 2,5D CaRMetal, emulujący geometrię 3D. Od wersji 4.0 CaRMetal posiada prawdziwy tryb 3D, który zawiera czworościan foremny , sześcian , romb i dwunastościan foremny . Możliwe jest również powiązanie punktu z wnętrzem (3D) okręgu lub wielokąta. Cecha ta, odziedziczona po CaR , jest oparta na współrzędnych barycentrycznych . Od wersji 4.1 CaRMetal zezwala na niektóre grafiki żółwi (zaprogramowane w JavaScript) w 2D lub 3D.
Magnetyzm
Punkt można uczynić magnetycznym za pomocą odległości i listy obiektów, do których jest przyciągany, gdy punkt znajduje się wystarczająco blisko jednego lub kilku z tych obiektów (wystarczająco blisko oznacza, że odległość między nimi jest mniejsza niż minimalna odległość, która jest właściwością punkt i jest mierzony w jednostkach pikseli ). Na przykład, gdy punkt jest przyciągany do skończonego zestawu punktów, które same są stałe, może badać skończoną geometrię .
Sieć
Od 2013 roku istnieje możliwość uruchomienia jednej postaci CaRMetal jako serwera (zwykle nauczyciela) oraz kilku jako klientów. Dlatego jest to możliwe
- wysłać swoją figurkę na serwer
- dla serwera, aby wysłać poprawną figurę do ucznia, który ją zgubił lub nie może jej stworzyć w wymaganym czasie
- zbierać dane, geometryczne lub nie, w obrębie jednej figury (serwera)
- manipulować tą samą figurą w tym samym czasie, dla kilku osób, które dzielą się swoją pracą
- do wysyłania i odbierania programów JavaScript (patrz poniżej)
- rozmawiać w ramach wspólnej postaci...
JavaScript wewnątrz CaRMetal
Narzędzie skryptowe łączy w sobie algorytmikę i geometrię . Takie narzędzia skryptowe istnieją również w DrGeo , Kig i Cinderella (oprogramowanie) . Aby uruchomić skrypt, należy kliknąć ikonę przedstawiającą sygnalizację świetlną . Skrypt można dołączyć do jednego lub kilku punktów, tak aby każdy ruch jednego z tych punktów uruchamiał skrypt. Pozwala to na pewną kinematykę odwrotną, podobnie jak w przypadku GeoLicia.
Zmienne
Aby stworzyć obiekt geometryczny w JavaScript wystarczy kliknąć na ikonę przedstawiającą obiekt. W edytorze pojawia się instrukcja JavaScript z predefiniowanymi parametrami. Użytkownik musi wtedy tylko je edytować i nie musi używać mnemotechniki . Ale kiedy tworzony jest obiekt geometryczny, zmienna, która wywołała procedurę, jest tak naprawdę ciągiem znaków zawierającym nazwę obiektu.
Na przykład,
za = Punkt ( 2 , 3 );
tworzy punkt, zwykle nazywany P1 , a zmienna a zawiera napis „P1”. Pozwala to na odniesienie się do punktu po nazwie. Współrzędne punktu są inicjowane, ale punkt nadal można przesuwać za pomocą myszy. Możliwe jest również utworzenie punktu w programowaniu proceduralnym za pomocą
Punkt ( "A" , 2 , 3 );
W tym przypadku nazwa punktu to „A” (chyba, że istnieje już obiekt o nazwie „A”) i żadna zmienna nie jest ustawiona na nazwę „A”.
Wejście wyjście
Aby wyprowadzić zmienną, istnieją cztery sposoby:
- Utwórz wyrażenie wewnątrz figury (lub wyświetl średnią graficzną, taką jak histogram);
- Drukuj , który otwiera nowe okno i drukuje w nim zawartość zmiennej;
- Println , który również trafia do linii;
- Alert , który otwiera okno alertu, które zamyka się, gdy tylko użytkownik kliknie OK .
Aby wprowadzić zmienną, jest
- Wejście (zakładasz!), które otwiera okno wprowadzania (z tekstem) i czeka na kliknięcie OK
- InteractiveInput , która pozwala użytkownikowi wybrać obiekt na rysunku
Ten paradygmat traktuje zmienne programu niekoniecznie jako zmienne liczbowe lub łańcuchowe, ale może również działać na obiektach graficznych. Jest to wspólna cecha Kiga (ale w tym przypadku językiem jest Python (język) ) i DrGeo (w tym przypadku Scheme (język) ).
Smyczki
Możliwe jest również ustawienie współrzędnych punktu jako ciągów znaków napisanych w języku CaRMetal. Na przykład, aby mieć punkt B , który następuje po A, z wyjątkiem tego, że współrzędne B są liczbami całkowitymi (aby modelować liczbę całkowitą gaussowską ), można napisać
a = Punkt ( "2,72" , "3,14" ); b = Punkt ( "round(x_a)" , "round(y_a)" );
Pętle
Na przykład trójkąt Sierpińskiego można zbudować jako iterowany system funkcji za pomocą tego skryptu rekurencyjnego, który jest raczej krótki ze względu na już dostępne instrukcje graficzne, takie jak MidPoint :
0
0
a = Punkt ( - 4 , - 2 ); b = Punkt ( 4 , - 2 ); c = punkt ( , 4 ); m = Punkt ( Matematyka . losowo (), Matematyka . losowo ()); UstawUkryj ( m , prawda ); for ( n = ; n < 2000 ; n ++ ) { kostka = Matematyka . ceil ( Math . random () * 3 ); //Trzyścienne kości! przełącznik ( kostka ) { przypadek 1 : { p = punkt środkowy ( a , m ); przerwa ; } przypadek 2 : { p = punkt środkowy ( b , m ); przerwa ; } przypadek 3 : { p = punkt środkowy ( c , m ); przerwa ; } } SetPointType ( p , "punkt" ); m = p ; }
Po zbudowaniu chmury punktów (i nawet podczas działania skryptu!) można przesuwać A , B i C za pomocą myszy (lub automatycznie za pomocą Małpy ): Trójkąt jest dynamiczny !
Obiekty JavaScript
CaRMetal może również używać obiektów JavaScript, takich jak
- tablice przydatne do tworzenia statystyk figur geometrycznych;
- obiekt daty, przydatny do mierzenia czasu;
- String i RegExp , które ułatwiają implementację L-systemów ;
- Ogólne obiekty JavaScript mogą być używane do tworzenia nowych obiektów geometrycznych, takich jak liczby zespolone , macierze itp. To programowanie obiektowe działa bardzo podobnie do skryptów Kig w Pythonie , ale wydaje się, że na dzień dzisiejszy nikt nie opublikował niczego, co by to wykorzystywało.
Zobacz też
- Vers des spécifications formelles: Fondements Mathématiques et Informatiques pour la Géométrie Dynamique, Bernard Genevès (PhD) PDF
- Busser Alain. TP sous JavaScript avec CarMetal. Bulletin de l'APMEP, 487 (2010), s. 191-199.
- Busser Alain. Un an d'algorithmique avec CarMetal en Seconde. MathémaTICE, 21 (2010) (artykuł online: [1] )
- Marcin Yves. Algorithmique et integration des outils. Reperes IREM, 79 (2010), s. 5-22.
- Marcin Yves. Géométrie repérée dynamique: une autre voie vers l'algébrisation? MathémaTICE, 20 (2010) (dostępny online: [2] )
- Marcin Yves. Quand la géométrie dynamique rencontre la programmation. In Actes du colloque « Les mathématiciens et l'enseignement de leur distribution en France » ( CIRM , Marsylia/Luminy, 15-19 marca 2010 r.) (wideo online: [3] )
- Marcin Yves. CaRMetal, une géométrie dynamique wzbogacanie. Wyrażenia, 35 (2010), s. 165-272PDF _
Linki zewnętrzne
- starsza witryna CaRMetal (do wersji 3.8.2, ale z większą ilością wyjaśnień w języku angielskim, z których większość wydaje się nadal aktualna)
- filmy przedstawiające siatkę ściętego dwudziestościanu, rozłożoną i dynamicznie zbudowaną za pomocą JavaScript pod CaRMetal