Peatükk 5. Skriptid

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 Pythoni skript või kasutada menüükäsku ObjektidMuuPythoni skript. Seejärel ilmub nõustaja.

Skriptiobjekti 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 Järgmine.

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 )
Keskpunkti koodi sisestamine skriptiobjekti nõustajas.

Kui nüüd klõpsata nupule Lõpeta, 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.

Loodud skriptiobjekt.

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.