Kapitel 5. Scripter

Kig tillader dig at lave egne typer i Python script-sproget. Dette er en meget avanceret egenskab, og jeg kender kun et andet interaktivt geometri program der har en lignende funktionalitet (GNOME-programmet Dr.Geo ).

Python scripter i Kig tillader dig basalt set at have din egen måde at lave et objekt fra et vist over-objekt. For eksempel, hvis du er matematiklærer, og du har en smart måde at beregne et interessant punkt på et keglesnit, så kan du, i stedet for at rode med komplekse konstruktioner og makroer, blot skrive ned i Python kode hvordan punktet skal beregnes så vil Kig vise det for dig.

Antag du ikke kendte til Kig's indbyggede type “Midterpunkt”, og du ønskede at vise midtpunktet for to givne punkter. Du ville så klikke på Python-script knappen i værktøjslinjen eller vælg Objekter->Andet->Script objekt fra menulinjen. Du bliver så præsenteret for en guide der lader dig fortsætte.


Script objekt guiden

Det første du skal gøre er at vælge argumenterne for script-objektet. I vort eksempel, betyder dette de to punkter for hvilke vi ønsker at vise midtpunktet. Vælg dem i Kig's hovedvindue, og klik på Næste for at fortsætte.

Nu bliver du præsenteret for en tekst-redigeringsfelt hvor du kan indtaste koden for dit script-objekt. Skabelon-kode og nogle kommentarer er allerede på plads. Det er vigtigt at sørge for at din kode er gyldig Python-kode. Folk der kender til Python vil bemærke at vi rent faktisk definerer en Python-funktion der hedder calc. Det er derfor nødvendigt at adlyde Python-reglerne for at definere funktioner. For eksempel skal hver linje i funktionen starte med en Tab. Den første linje der ikke starter med en Tab afslutter definitionen af funktionen.

Python-funktionen vi ønsker at definere hedder calc, og i vores tilfælde accepterer den to argumenter. Disse er de objekter du har valgt som argumenter på den forrige skærm. Du vil have brug for så mange argumenter som du har valgt der. De hedder arg1 og arg2, men du kan ændre deres navne til noget mere betydningsfuldt hvis du vil.

I funktionen kan du udføre alle slags beregninger som du mener er nødvendige, ved brug af de to argumenter. Du skal returnere objektet du ønsker skal defineres. I vores tilfælde er det et Punkt-objekt. De to argumenter er også Punkt-objekter, og vi kan bruge Point.coordinate() funktionen til at definere koordinaterne for de to givne punkter.

Den nødvendig beregning i vores eksempel er meget enkel, vi lægger simpelthen de to sæt koordinater sammen, og dividerer resultatet med to. Vi konstruerer så et nyt punkt ved brug af resultatet. Den Python-kode der bruges er:

def calc( a, b ):
        m = ( a.coordinate() + b.coordinate() ) / 2;
        return Point( m )

Indtastning af kode for midtpunkt i Script-objekt guide.

Hvis du nu klikker på Færdig-knappen, så vil det nye objekt komme frem i Kig-dokumentet. Hvis du flytter et af punkterne, så vil det nye punkt flytte langs med dem. Meget mere interessante objekter kan bygges på denne måde: du opfordres til at forsøge dig frem.


Det nyligt konstruerede script-objekt.

Alle objekter i Kig kan bruges i Python-koden. Som vi har set ovenfor er punkter af Punkt-klasse, og du kan bruge f.eks. Point.coordinate() metoden. Du kan også returnere alle andre slags objekter, ikke kun Punkter. Mange flere klasser og metoder er tilgængelige i Kig's Python-kode, og en mere fuldstændig reference findes Kig's hjemmeside.