Python i GeoGebra

Chefsutvecklaren på GeoGebra, ”The mad wizard” Mike Borcherds jobbar vidare på implementeringen av ett pythongränssnitt i GeoGebra.

Utseendet och funktionaliteten kommer fortfarande att förändras mycket. I den här versionen kan du till exempel inte spara din egen kod. Testversionen finns på https://bennorth.github.io/python-geogebra/


GeoGebra-kommandon börjar med stor bokstav, resten av koden är Python. Det svarta fönstret till vänster är kodredigeraren. Om det finns GeoGebra-kommandon i koden som producerar GeoGebra-objekt, kommer de att visas i GeoGebra-ritningsområdet på höger sida. Nedanför kodredigeraren finns ett fönster där du kan skriva ut utdata med Pythons print() funktion. Där visas även möjliga felmeddelanden. Knappen Open in GeoGebra öppnar ritytan i onlineversionen av GeoGebra. På så sätt kan du enkelt redigera utdata i GeoGebra.

Pythonversionen kommer så vitt vi vet att släppas innan sommaren, men förseningar har skett förr. Det kommer dessutom bara vara möjligt att köra Python online, och inte i nedladdade versioner på din dator. Trots det är det en spännande utveckling som kan förenkla för de som vill programmera just i matematikundervisningen. Vi får också nu tillgång till for-loopar och villkorssatser i Python, något som tidigare bara varit möjligt för den som vill skriva javascript.

Vad skulle du vilja göra med Python i GeoGebra?

GeoGebra för lärare: Kryssrutor

I GeoGebra är en kryssruta den grafiska representationen av en så kallad Boolesk variabel, en variabel som bara kan ta värdena true eller false. Den grundläggande idén är att låta en kryssruta bestämma om ett eller flera objekt på skärmen ska vara synliga för tillfället eller ej, som en slags på/av-knapp, men det är bara en av alla möjligheter.

Vi tänker oss att du vill visa symmetrilinjen och vertex hos andragradsfunktioner. Du matar in ax2 + bx + c och trycker på Enter för att rita upp en andragradsfunktion vars koefficienter du kan reglera. Kommandot Extrempunkt(f) ger dig vertexpunkten och du döper om den till V. Sedan skapar du symmetrilinjen med kommandot x = x(V) och gör den streckad och fin.

Du är inte säker på om du vill ha algebrafönstret öppet när du demonstrerar detta så du vill ha en kryssruta som kopplar på och av symmetrilinjen. Du väljer verktyget för kryssruta…

…och klickar där du vill ha den.  Nu får du upp en meny där du kan välja den vertikala linjen. Förklaring är texten du vill ha bredvid kryssrutan, t.ex. ”Visa symmetrilinjen”.

Allt fungerar som det är tänkt – men så kommer du på att du kanske skulle vilja kryssrutan styra även vertexpunkten. Hur gör du det?

Nyckeln till att förstå det här är att inse att ”visas” är en egenskap hos linjen, inte hos kryssrutan. Så du går in i egenskaperna för linjen och väljer fliken Avancerat. Högst upp, under rubriken Villkor för att visa objekt hittar du d som är kryssrutans namn. Linjen visas alltså endast när d har värdet true – när kryssrutan är markerad.

För att låta punkten V påverkas av kryssrutan d så går du alltså in på V:s egenskaper, väljer fliken avancerat, och skriver in d under Villkor för att visa objekt. Nu styr kryssrutan både symmetrilinjen och vertexpunkten samtidigt.

Men så börjar du fundera. Egentligen vill du ju först visa vertexpunkten, och sen visa symmetrilinjen. Det kanske är bättre med två kryssrutor. Fast det var ju rätt snyggt att bara ha en kryssruta. Går det att göra så att den andra kryssrutan bara visas först när du markerat den första? Jodå. Gör så här:

Skapa en ny kryssruta som du kopplar till punkten V. Den nya kryssrutan får namnet e. Gå sedan in i egenskaperna för den booleska variabeln d (alltså den första kryssrutan) och skriv in e under Villkor för att visa objekt. Nu kommer kryssruta d bara att visas om du först markerat kryssruta e.

Du kan också ”nollställa” kryssruta d så att den alltid är omarkerad varje gång den visas. För att göra det krävs ett litet script. Gå in i egenskaperna för kryssruta e och välj Script (Program).     Under Vid uppdatering (onUpdate) skriver du in SättVärde(d, false).

Du kan flytta på kryssrutorna genom att dra i dem med höger musknapp.

Nu kan du ändra andragradsfunktion som du vill och fråga eleverna vad vertexpunkten har för koordinater och därefter vad symmetrilinjen har för ekvation om och om igen.

Här är ett annat exempel där synligheten hos en kryssruta avgörs av värdet på en glidare.   

Det finns ännu fler exempel med tydliga beskrivningar i GeoGebra Builders Handbook.