# &kig;i käsiraamat

## Sissejuhatus

&kig; on interaktiivse geomeetria rakendus, millel on kaks peamist eesmärki:

- Pakkuda õppuritele võimalust arvuti abil interaktiivselt uurida matemaatilisi kujundeid ja kontseptsioone.

- Olla matemaatiliste kujundite loomise ning nende teistesse rakendustesse kaasamise WYSIWYG töövahend.

Probleemidest &kig;i kasutamisel saab teada anda sisemise veateatevahendi abil (Abi Saada vearaport...) või mulle otse kirjutades e-posti aadressile toscano.pino@tiscali.it.

&kig; toetab ka makrosid ja lookuseid, võimaldades määrata üsna keerulisi makrosid. Kui oled loonud mõne huvitava makro ja arvad, et see võiks kasuks tulla ka teistele, võid selle mulle saata (aadressil toscano.pino@tiscali.it), et ma saaksin selle uue versiooniga kaasa panna. See tähendab ühtlasi, et sinu panus litsenseeritakse vastavalt &kig;i litsentsile ehk GPL-ile, mis tähendab, et teised inimesed võivad seda vabalt kasutada ja oma vajadustele kohandada.

## Põhitõed

### Objektide loomine

#### Punktide loomine

Punkti saab luua mitmel viisil:

- Vali menüükäsk Objektid Punktid Tavaline punkt või klõpsa vastavat nuppu tööriistaribal. Seejärel saab punkti luua, kui klõpsata aknas soovitud kohale.

  Tegelikult käib ka teiste objektide loomine sama lihtsalt: klõpsa vajalikul elemendil menüüs või tööriistaribal ning vali aknas objekti loomiseks vajalikud elemendid.

- Et punkte on väga tihti vaja luua, siis tekitab selle juba lihtsalt klõps &HKN;ga kuskil aknas, ilma et oleks vaja kasutada menüüd või tööriistariba.

- Punkte saab luua samal ajal, kui taustal luuakse teisi objekte, ning seejärel neid vajaduse korral muude objektide jaoks valida. Selle kohta vaata lähemalt constructing-other-objects.

Loodud punkt Loodud punkt

#### Muude objektide loomine

Muude, punktist erinevate objektide loomine käib vastavat kirjet menüüs Objektid valides või klõpsates mõnele tööriistariba nupule.

Ringjoone loomine Ringjoone loomine

See käivitab vastavat tüüpi objekti loomise. Kõik sellised tüübid nõuavad teatud argumente. Kui näiteks valid ringi loomise keskpunkti ja punkti järgi, tuleb ka määrata kaks punkti: üks neist keskpunkt ja teine punkt ringjoonel.

Argumentide valimiseks klõpsa objektil, mida soovid kasutada. Kui liigutad hiirekursorit üle objekti, mida on võimalik vajaliku objekti loomiseks kasutada, ilmub eelvaatlus, mis näitab, milline loodav objekt hakkab antud juhul välja nägema. Objektide korral, mille argumendiks on punktid, saab uue punkti luua kursori hetkeasukohas ning selle siis valida &HVN;ga.

Uue objekti loomisest saab alati loobuda vajutusega klahvile &Esc; või klõpsuga tööriistariba nupul Stopp (punane kaheksanurk, mille keskel on X).

Ringjoone loomine. Ringjoone loomine

### Objektide valimine

Objekti saab valida kahel viisil:

- Klõps objektil valib selle, tühistades varasema valiku. Kui soovid ka varasemat valikut säilitada, hoia objektile klõpsamise ajal all klahvi &Ctrl;.

- Aknas tühjale kohale klõpsates ja hiirt lohistades saab valida kõik objektid, mis jäävad tekkiva ristküliku sisse. See tegevus tühistab varasema valiku. Ka siin tuleb varasema valiku säilitamiseks all hoida klahvi &Ctrl;.

Kui sul on hiire all rohkem kui üks objekt, saad hõlpsasti valida, millist objekti valida või lisada senisele valikule. Klõpsa &HVN;ga, hoides samal ajal all klahvi &Shift;, mis näitab kõiki hiire all asuvaid objekte. Seejärel vali nende seast vajalik objekt. Nagu juba öeldud, mõjutab klahvi &Ctrl; kasutamine valikut.

Objektide valimine Objektide valimine

### Objektide liigutamine

Objektide liigutamiseks tuleb need esmalt valida.

Kui oled valinud objektid, mida soovid liigutada, saad neid liigutada, kui klõpsad ükspuha millisel neist &HVN;ga ja lohistad hiirt. Kui oled jõudnud vajalikku asukohta, vabasta &HVN;.

Mõningate objektide puhul (ennekõike keerulisemad lookused) on objektide liigutamine vanema riistvara korral üsna aeglane. See on muidugi kahetsusväärne, kuid arvestades liigutamiseks vajalike arvutuste mahtu paraku vältimatu.

Kui klõpsata &HPN;ga mõnel valitud objektil ja valida käsk Liiguta, paneb objektid liikuma juba ainuüksi hiire liigutamine. Kui objekt on jõudnud soovitud asukohta, peatab liikumise klõps &HVN;ga.

### Objektide kustutamine

Objektide kustutamiseks tuleb need esmalt valida ning seejärel teha üht kahest:

- Vajutada klahvi Delete.

- Vajutada tööriistaribal nuppu Kustuta.

- Klõpsata mõnel valitud objektil &HPN;ga ning valida käsk Kustuta ilmuvast kontekstimenüüst.

### Objektide näitamine ja peitmine

&kig;is on võimalik objekte ka peita. Selleks tuleb objektid valida, teha neil klõps hiire parema nupuga ja valida käsk Peida ilmuvast kontekstimenüüst.

Peidetud objektide taas nähtavale toomiseks saab kasutada menüükäsku Redigeerimine Näita kõiki. See toob nähtavale kõik parajasti peidetud objektid.

#### Öine nägemine

Öine nägemine ehk infrapunarežiim on eriti kasulik peidetud objektide korral. Kui pead üht või enamat objekti liigutama või neis midagi muutma, aga ei soovi kõiki peidetud objekte nähtavaks muuta, siis on just sellest abi.

Põhimõtteliselt lubab see peidetud objekte näha, nagu oleks need nähtaval, nii et sa saad neid töödelda nagu tavalisi objekte. Selles režiimi näidatakse peidetud objekte halli tooniga.

Öise nägemise sisselülitamiseks kasuta menüükäsku Seadistused Infrapunaprillid.

### Tagasivõtmine/uuestitegemine

&kig;is on võimalik tagasi võtta peaaegu igasugust dokumendis sooritatud muudatust. Selleks tuleb vaid kasutada tööriistaribal asuvaid nuppe Võta tagasi/Tee uuesti või vastavaid kiirklahve.

### Täisekraanrežiim

&kig; võimaldab kasutada ka täisekraanrežiimi. Selleks klõpsa vastaval nupul tööriistaribal või kasuta menüükäsku Seadistused Täisekraan.

Täisekraanrežiimist lahkumiseks klõpsa &HPN;ga akna tühjas osas, kus pole ühtegi objekti, ning vali käsk Välju täisekraanrežiimist, või vajuta klahvi &Esc;.

## &kig;i objektide tüübid

&kig; toetab päris paljusid objektitüüpe. Sa võid kõiki neid ise proovida, sest ma arvan, et see on palju õpetlikum kui käsiraamatust teooria lugemine. Arvesta aga palun, et tööriistaribal ei ole näha mitte kõik võimalikud objektid - mõningaid saab luua vaid käsuga menüüst Objektid. Nagu &kde;s ikka, on tööriistaribadel näidatav mõistagi igati seadistatav. Kui soovid sinna objekte või midagi muud lisada, kasuta menüükäsku Seadistused Tööriistaribade seadistamine....

## Edasijõudnutele

### Kontekstimenüüd

&kig; pakub võimalust kasutada objektide puhul kontekstimenüüd. Selleks tuleb mingil objektil klõpsata &HPN;ga. Menüüs on mitmeid võimalusi: selle abil saab luua uusi objekte, määrata värve või ka objekte peita, liigutada või kustutada. Mõningatel objektidel on kontekstimenüüs ainult neile omaseid võimalusi, näiteks saab teatud punkte kinnistada sirgjoone külge, millega nad varem ei olnud seotud &etc; Katseta ja vaata, mida miski teeb. Midagi rasket ega üle mõistuse käivat siin kindlasti ei ole.

### Dokumendi kontekstimenüüd

Klõps &HPN;ga dokumendil, &ie; akna osal, kus ei paikne objekt, avab hüpikmenüü. mis võimaldab luua uusi objekte, muuta kasutatavat koordinaatide süsteemi, näidata peidetud objekte või isegi dokumenti suurendada või vähendada.

### Makrode defineerimine

&kig;i üks suurepäraseid võimalusi on makrode kasutamine. See lubab määrata objekte omavahel kombineerides sootuks uut tüüpi objekte.

Oletame näiteks, et soovid luua makro, mis tekitaks kolme punkti põhjal ringjoone. Siis tuleb sul luua kolm punkti, mõned ristsirged ja keskpunktid, kuni oled leidnud keskpunkti, ning seejärel luua ringjoon keskjoone ja ühe punkti järgi. Seda aitab selgitada all toodud joonis.

Makrode testimine Makrode testimine

Nüüd vaatame makro defineerimist. Vali käsk Uus makro menüüst Tüüp või klõpsa tööriistariba vastaval nupul. Ilmub nõustaja, mis palub valida antud objektid. Meie näites on neiks kolm punkti. Vali kolm punkti (klõps neil valib, uus klõps tühistab valiku) ning klõpsa jätkamiseks nupule Järgmine. Seejärel tuleb valida lõppobjektid (meie näites on selleks ringjoon).

Makronõustaja Makronõustaja

Kui see on tehtud, klõpsa jätkamiseks nupule Järgmine. Sisesta uue tüübi nimi ja soovi korral ka kirjeldus ning klõpsa nupule Lõpeta. Makro ongi valmis.

Uue makrotüübi kasutamiseks klõpsa selle nupule tööriistaribal või vali see menüüst Objektid. Makroobjekti loomine sarnaneb igati tavapärase objekti loomisega.

Uue tüübi kasutamine Uue tüübi kasutamine

### Tüüpide kasutamine

Nagu nägime eelmises peatükis, võimaldab &kig; luua omaenda objekte. &kig; tagab ka selle, et kui oled objekti loonud, salvestatakse see rakendusest väljumisel ning laaditakse rakenduse uuel käivitamisel. Makrosid ei pea käsitsi salvestama ega avama. Kuid &kig; võimaldab makrodega veel palju enam ette võtta. Kui valid menüükäsu Tüübid Halda tüüpe..., ilmub dialoog, kus saad oma tüüpe redigeerida. See võimaldab kustutada tüübid, mida sa enam ei vaja, salvestada need faili või ka avada failist.

Tüüpide redigeerimise dialoog Tüüpide redigeerimise dialoog

### Tekstipealdised

&kig; võimaldab loodud objektidele lisada tekstipealdisi. See on väga tulus nimede, selgituste või mingi muu vajaliku teksti näitamiseks. &kig; võib näidata ka mitmesugust infot objektide kohta (seda nimetatakse sageli omadusteks).

Tekstipealdise loomiseks klõpsa &kig;i tööriistaribal tekstipealdise nuppu või kasuta menüükäsku Objektid Muu Tekstipealdised.

Seejärel tuleb valida koht, kuhu pealdis asetada. Valida võib suvalise koha aknas või siis siduda pealdise mõne objektiga.

Pealdise sidumine ringjoonega... Pealdise sidumine ringjoonega...

Nüüd ilmub tekstipealdise dialoog. Siin saab kirja panna teksti, mida pealdis peaks näitama, ning kui see on tehtud, tuleb klõpsata nupule Lõpeta. Ja ongi pealdis dokumendis olemas.

Tekstipealdise dialoog Tekstipealdise dialoog

Eelmine näide oli üsna lihtne ja piirdus ainult tekstiga. Kuid võimalik on pealdises näidata ka mitmesugust infot objektide kohta, ⪚ võib luua pealdise tekstiga Selle lõigu pikkuseks on %1, kus %1 asendatakse vastavalt muutustele konkreetse lõigu pikkusega.

Selleks kirjuta tekst ja määra selles numbritega kohatäitjad (%1, %2 &etc;). Kui oled lõpetanud, vajuta jätkamiseks nupule Järgmine. Kui soovid hiljem teksti või muutujaid täiendavalt redigeerida, saad seda teha nupu Tagasi abil.

Nõustaja näitab nüüd sisestatud teksti, kus kõigi kohanäitajate asemel seisab argument 1 või midagi sellist. Valimaks, mida teatud argumendina näidatakse, tuleb esmalt klõpsata vajalikul argumendil. Seejärel klõpsa objektil, mis peab infot näitama, ning vali ilmuvast hüpikmenüüst see infotüüp, mida soovid näha. Meie näite korral tuleks siis klõpsata kirjel argument 1, seejärel klõpsata &kig;i peaaknas vajalikul lõigul ja valida omadus Pikkus. Pärast seda saad sama operatsiooni sooritada muude muutujatega. Kui oled valmis, klõpsa tekstipealdise lõplikuks loomiseks nupule Lõpeta.

Muutuja omaduse valimine Muutuja omaduse valimine

### Lookused

&kig; toetab ka lookuste kasutamist. Lookus on lühidalt öeldes on see kujund, mis on määratud kõigi punktidega, millest punkt üle liigub, kui liigub mingi kinnispunkt... See võib kõlada üpris keerulisena, kuid tegelikult see nii hull ei olegi ja kindlasti saab asi järgneva näite varal üsna selgeks.

Kujutame ette sellist geomeetrilist konstruktsiooni: me tõmbame ringjoone ning märgime sellel punkti, mis võib mööda ringjoont liikuda (selle saab luua, kui viia hiirekursor ringjoonele ja klõpsata &HKN;ga. Kui hiljem püüad tekkinud punkti liigutada, näed, et seda ei saa ringist välja liigutada). Nüüd tõmbame sellest punktist lõigu ringjoone keskpunkti ja märgime lõigu keskpunkti.

Lihtsa lookuse loomine Lihtsa lookuse loomine

Kui nüüd liigutada ringjoonele kinnitatud punkti, näed, et liigub ka teine punkt. Kui teha esimese punktiga ära terve ring, ilmub nähtavale uus, poole väiksem ring. See ongi lookus ehk siis teekond, mida läbib teine punkt, kui esimene teeb tiiru ringjoonel.

Tegelikult ongi lookuse loomine päris lihtne. Selleks tuleb klõpsata tööriistariba vastaval nupul või valida menüükäsk Objektid Muu Lookus. Seejärel tuleb luua liikuv kinnispunkt (selle kohale hiirt viies ilmub nähtavale tekst Liikuv punkt) ning teine, sõltuv punkt. Nähtavale ilmubki lookus.

## 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 &drgeo;).

Pythoni skriptid võimaldavad &kig;is 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 &kig;i 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 Objektid Muu Pythoni skript. Seejärel ilmub nõustaja.

Skriptiobjekti 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 &kig;i 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 tabulaatorimä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 )

Koodi sisestamine Keskpunkti koodi sisestamine skriptiobjekti nõustajas.

Kui nüüd klõpsata nupule Lõpeta, ilmubki uus objekt &kig;i 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 Loodud skriptiobjekt.

Kõiki &kig;i objekte võib kasutada Pythoni koodis. Nagu eespool nägime, kuuluvad punktid klassi `Point` ja me võime kasutada ⪚ meetodit `Point.coordinate()`. Tulemuseks võib aga olla mis tahes tüüpi objekt, mitte tingimata `Point`. &kig;i Pythoni kood pakub ohtralt klasse ja meetodeid, millest täpsema ülevaate leiab siit.

## &kig;i omadused

- &kig; on vaba tarkvara. See tähendab, et sul on õigus seda kasutada ja selle lähteteksti muuta oma soovide kohaselt. &kig;i levitamine on aga seotud teatud piirangutega, mis ennekõike puudutavad tõsiasja, et kõigil peavad olema ühesugused õigused kasutada &kig;i, sealhulgas sinu tehtud muudatusi.

  Vaba tarkvara arendavad tõeliselt vabadust ihkavad inimesed ning arendajad on tavaliselt väga tänulikud kasutajate tagasiside üle. Seepärast: kui sul on küsimusi, kaebusi või üldse midagi &kig;i kohta öelda, ütle seda mulle e-kirjas aadressile toscano.pino@tiscali.it.

- &kig; on KPart-rakendus, mis tähendab, et seda on võimalik põimida muu &kde; tarkvaraga. Kui avad näiteks &konqueror;is faili laiendiga `.kig`, avatakse see otse &konqueror;i aknas ilma välist rakendust käivitamata.

- &kig;i kasutamine on väga hõlpus, objektide loomine lihtne ja interaktiivne, näha saab ka vahetulemusi &etc; Liigutamine, valimine ja loomine käib just nii, nagu seda võibki oodata. Ka toimingute tagasivõtmine on täiesti tasemel.

- &kig; võimaldab makrosid kasutada ilma mingite raskusteta. Sel moel loodud objektid alluvad samadele reeglitele nagu tavalised objektid. Need salvestatakse rakenduse sulgemisel ja laaditakse selle käivitamisel, nii et igal juhul ei lähe nad kaduma. Objekte saab hallata dialoogis Tüüpide haldamine (vaata working-with-types). Neid saab faili salvestada, failist avada, muuta ja kustutada.

- &kig; salvestab oma andmed puhtas &XML; vormingus.

- &kig; võimaldab luua lookuseid.

- &kig; võimaldab eksportida &kig;i faili ka mõnda muusse vormingusse, näiteks pildiks, XFig- või LaTeX-failiks või SVG vektorpildiks . See on üpris kasulik, sest paraku ei toeta veel mitte kõik rakendused &kig;i failivormingut.

- &kig; võimaldab äärmiselt paindlikult objekte projitseerida.

- &kig; püüab olla oma konkurentidega ühilduv, mistõttu on toetatud näiteks &kgeo; ja &kseg;i ning osaliselt &drgeo; ja &cabri; failivorming. Kavas on pakkuda toetust teistelegi vormingutele.

## Küsimused ja vastused

&reporting.bugs; &updating.documentation;

## Autorid ja litsents

&kig;

&kig;i autoriõigus 2002-2004: Dominique Devriese devriese@kde.org

Dokumentatsiooni autoriõigus 2002-2004: Dominique Devriese devriese@kde.org.

Dokumentatsiooni autoriõigus 2004-2005: Pino Toscano toscano.pino@tiscali.it.

Korrigeerinud: &Philip.Rodrigues; &Philip.Rodrigues.mail;.

Tõlge eesti keelde: Marek Laane bald@starman.ee

&underFDL; &underGPL;

## Paigaldamine

### Kuidas hankida &kig;?

&install.intro.documentation;

### Kompileerimine ja paigaldamine

&install.compile.documentation;

## Kaasaaitamine

### Vaba tarkvara

&kig; on vaba tarkvara. See tähendab, et rakenduse lähtetekst on internetis kõigile vabalt kättesaadav ning kõik võivad seda kasutada, uurida, muuta ja levitada. Mina näen selle kallal vaeva hobi korras ning ma olen tänu sellele saanud päris palju teada programmeerimise, C++, &kde;/&Qt;, matemaatika, tarkvara ühilduvuse ning vaba tarkvara projektide kohta.

### Kaasaaitamine

Selle peatüki mõte on tutvustada sulle kui kasutajale õigusi, mida annab sulle &kig;i litsents. Nagu vaba tarkvara puhul ikka, on sul õigus parandada vigu, mis kasutamisel ette tulevad (ja ma väga soovin, et sa seda teeksid), lisada võimalusi, mis sinu arvates puuduvad, levitada muudetud rakendust ning saata need muudatused ka mulle aadressile toscano.pino@tiscali.it, et ma võiksin need lisada uude versiooni, mis võimaldab kõigil neist osa saada. Minul isiklikult ei ole selle projektiga seotud mingeid rahalisi huve, nii et see jutt ei ole kindlasti mõeldud turustamisnipina.

Kui sa ei ole päris kindel, millised on sinu õigused selle tarkvara kasutamisel või millised on teiste inimeste õigused kasutada muudatusi, mida sa oled rakendusse teinud, tutvu palun litsentsiga. Selle leiab &kig;i paketist failis `COPYING` või dialoogi Kigi info litsentsikaardilt.

### Kuidas kaasa aidata?

Oodatud on igasugune kaasabi. Kui arvad, et ikoonid võiks olla palju etemad või et käsiraamat vajab kohendamist-täiendamist või kui sul on valmis saanud lahe makro, mida kõik peaksid naudinguga kasutama, ära kõhkle, vaid saada oma panus mulle. Arvesta, et sinu kaastööd levitatakse vastavalt &GNU; Üldise Avaliku Litsentsi tingimustele, millega saab tutvuda &kig;i lähtetekstipaketi failis `COPYING` või ka käesolevas käsiraamatus peatükis Autorid ja litsents.

&documentation.index;