Kig võimaldab kasutajal luua oma tüüpe Pythoni skriptikeeles. See on väga kasulik võimalus ja ma tean veel ainult üht interaktiivse geomeetria rakendust, mis sellist võimalust pakub (GNOME rakendus Dr.Geo).
Pythoni skriptid võimaldavad Kigis luua täiesti kasutaja meele järgi meetodi määrata objekt teatud emaobjektide põhjal. Kui oled näiteks matemaatikaõpetaja ja sul on oma lahe meetod arvutada välja koonuse vajalik punkt, siis selle asemel, et näha vaeva keeruka loomisprotsessi ja makrodega, võid lihtsalt kirjutada Pythoni skripti, mis määrab, kuidas punkti arvutada - ja Kig näitab seda graafiliselt.
Taas on seda ilmselt mõistlikum selgitada näite varal. Oletame, et sa oled kahe silma vahele jätnud Kigi pakutava “keskpunkti” võimaluse, kuid tahad ometi näidata kahe määratud punkti keskpunkti. Selleks tuleb klõpsata tööriistariba nupule või kasutada menüükäsku → → . Seejärel ilmub nõustaja.
Esmalt tuleb valida skriptiobjekti argumendid. Meie näites tähendab see kaht punkti, mille keskpunkti me soovime näidata. Vali punktid Kigi peaaknas ja klõpsa jätkamiseks nupule .
Nüüd ilmub tekstikast, kuhu saab sisestada skriptiobjekti koodi. Kohal on juba mallkood ja mõned kommentaarid. Oluline on kontrollida, et sisestatu oleks ikka korrektne Pythoni kood. Need, kellele Python on juba tuttav, saavad aru, et me tegelikult defineerime Pythoni funktsiooni calc
. Seepärast on vajalik kindlasti järgida Pythoni funktsioonide defineerimise reegleid. Nii peab näiteks funktsiooni iga rida algama tabeldusmärgiga. Esimene rida, mis tabeldusmärgiga ei alga, tähistab funktsiooni definitsiooni lõppu.
Defineeritav Pythoni funktsioon kannab nimetust “calc” ning arvestab meie juhul kaht argumenti. Nendeks on objektid, mille valisime argumentidena eelmisel ekraanil. Argumente on just nii palju, kui palju argumente varem on valitud. Need kannavad nimetust arg1
ja arg2
, kuid soovi korral võib nende nimetused muuta ka millekski arusaadavamaks.
Selles funktsioonis saab lasta teha kõikvõimalikke arvutusi, mida pead vajalikuks, kasutades selleks ka mainitud kaht argumenti. Tulemuseks peaks olema objekt, mida soovid näha. Meie näites on selleks punktiobjekt. Kaks argumenti on samuti punktiobjektid ning me võime kasutada kahe antud punkti koordinaatide jaoks funktsiooni Point.coordinate()
.
Meie näites vajalik arvutus on äärmiselt lihtne: kaks koordinaati tuleb liita ja tulemus kahega jagada. Nii saame saadud tulemust kasutades luua uue punkti. Selleks vajalik Pythoni kood näeb välja selline:
def calc( a, b ): m = ( a.coordinate() + b.coordinate() ) / 2; return Point( m )
Kui nüüd klõpsata nupule , ilmubki uus objekt Kigi dokumenti. Kui liigutad üht selle punkti, liigub kaasa ka uus, loodud punkt. Sel moel on võimalik mõistagi luua ka palju mõjusamaid objekte, mida me soovitame sul soojalt endal järele proovida.
Kõiki Kigi objekte võib kasutada Pythoni koodis. Nagu eespool nägime, kuuluvad punktid klassi Point
ja me võime kasutada nt. meetodit Point.coordinate()
. Tulemuseks võib aga olla mis tahes tüüpi objekt, mitte tingimata Point
. Kigi Pythoni kood pakub ohtralt klasse ja meetodeid, millest täpsema ülevaate leiab siit.