Handbok Kig

# Handbok Kig

Dominique Devriese `<devriese@kde.org>`

Översättare: Stefan Asserhäll
Revision Program 20.12 (2020-12-23)

Copyright © 2002, 2003, 2004 Dominique Devriese

Rättsligt Meddelande

Kig är ett program för interaktiv geometri av KDE.

Kapitel 1. Inledning
Inledning

# Kapitel 1. Inledning

Kig är ett program för interaktiv geometri. Det är avsett att tjäna två syften:

- Låta studenter utforska matematiska figurer och koncept med datorn.

- Fungera som ett verktyg för att rita matematiska figurer och infoga dem i andra dokument, med resultatet direkt synligt.

Du kan rapportera problem med Kig med det interna felrapporteringsverktyget (Hjälp → Rapportera fel).

Eftersom Kig stöder makron och konstruktion av lokus, ger det möjlighet att definiera några ganska avancerade makron. Om du har skapat ett intressant makro, som du tror kan vara användbart för andra, skapa en granskningsbegäran för ändringen, så att den kan utvärderas för att läggas till i distributionen (om du gör det, licensieras det med Kigs licens, GPL, så att andra kan använda och ändra det fritt).

Kapitel 2. Grundläggande användning
Grundläggande användning

# Kapitel 2. Grundläggande användning

## Konstruera objekt

### Konstruera punkter

Du kan skapa punkter på flera olika sätt:

- Välj Objekt → Punkter → Punkter i menyraden eller tryck på lämplig knapp i verktygsraden. Därefter kan du konstruera en punkt genom att klicka på önskad position i fönstret.

  ### Notera

  Tryck på skifttangenten för att aktivera låsning till rutnätet, vilket låter dig placera vilken punkt som helst i en konstruktion exakt på rutnätets punkter.

  ### Notera

  I själva verket fungerar detta på samma sätt för att konstruera andra objekt: Klicka på önskat alternativ i menyer eller verktygsknapp och markera nödvändiga delar för att skapa objektet.

- Eftersom du ofta behöver skapa punkter, skapas en punkt åt dig genom att du helt enkelt klickar någonstans på skärmen med musens mittenknapp, utan att behöva gå till en meny eller knapp.

- Du kan skapa punkter medan du bygger andra objekt i bakgrunden, och eventuellt markera dem för objektet du håller på att bygga. För mer om detta, se ”Konstruera andra objekt”.

### Konstruera andra objekt

Att skapa andra objekt än punkter görs oftast genom att välja lämpligt alternativ i menyn Objekt, eller genom att klicka på en av knapparna i verktygsraden.

Då påbörjas konstruktionen av den valda objekttypen. Alla dessa typer kräver argument. Om du till exempel väljer att skapa en cirkel med centrum och punkt, måste du ange två punkter: en för centrum och en för punkten på cirkeln.

Argumenten är också objekt som kan markeras genom att helt enkelt klicka på dem. När du flyttar markören över ett argument du vill använda för att skapa ett objekt, visas en preliminär bild av objektet, så att du vet hur det kommer att se ut. För objekt som kräver punkter som argument, kan du placera en ny punkt på markörens nuvarande position, och markera den genom att klicka med vänster musknapp.

Du kan alltid avbryta konstruktionen av det nya objektet genom att trycka på knappen Esc, eller genom att klicka på knappen Avbryt konstruktion (den röda cirkeln med ett streck) i verktygsraden.

Markera objekt
Markera objekt

## Markera objekt

Att markera objekt kan göras på två sätt:

- Genom att helt enkelt klicka på ett objekt gör att objektet du klickade på blir markerat, och nuvarande markering försvinner. Om du vill markera flera objekt samtidigt, håll nere Ctrl-tangenten medan du klickar på ett objekt.

- Genom att klicka och dra på ett tomt ställe på skärmen, kan du välja alla objekt inne i rektangeln som skapas. Den här åtgärden tar bort nuvarande markering. Som i föregående fall, är det möjligt att behålla nuvarande markering genom att hålla nere Ctrl-tangenten.

När du har mer än ett objekt under musen (indikerat av Vilket objekt? i statusraden och vid muspekaren), kan du enkelt välja vilket objekt som ska markeras eller läggas till i den nuvarande markeringen. Klicka med vänster musknapp medan du håller nere Skift-tangenten, för att få en sammanhangsberoende meny med alla objekt under musen. Därefter kan du välja objektet du vill ha. Som tidigare nämnts, påverkar beteendet hos Ctrl-tangenten markeringen.

Flytta objekt
Flytta objekt

## Flytta objekt

För att flytta objekt, måste du först markera dem.

När objekten som du vill flytta är markerade, kan du börja flytta dem genom att vänsterklicka och dra vilket som helst av dem. När du är klar, släpp helt enkelt upp vänster musknappen.

### Notera

För vissa typer av objekt (särskilt när de definieras av komplicerade lokus), kan det gå långsamt att flytta dem på gamla datorer. Det är olyckligt, men oundvikligt, med de beräkningar som måste utföras.

### Notera

Om du högerklickar på ett av de markerade objekten, och väljer Flytta, flyttas objektet när musen rörs. När objektet har flyttats till önskad position, avslutas förflyttningen med ytterligare ett klick med vänster musknapp.

Ta bort objekt
Ta bort objekt

## Ta bort objekt

Att ta bort objekt görs genom att först markera dem, och därefter göra något av det följande:

- Trycka på tangenten Delete.

- Klicka på knappen Ta bort objekt i verktygsraden.

- Högerklicka på ett av objekten, och välja Ta bort i den sammanhangsberoende menyn som visas.

Visa och dölja objekt
Visa och dölja objekt

## Visa och dölja objekt

I Kig kan objekt döljas. Det görs genom att markera objekten, högerklicka på ett av dem, och välja Dölj i den sammanhangsberoende menyn som visas.

För att visa objekt igen, använd Redigera → Visa allt. Det visar alla objekt som för närvarande är dolda.

### Nattsyn

Nattsyn är ett särskilt sätt att arbeta med dolda objekt. När du vill flytta eller ändra något i ett eller flera objekt utan att visa alla dolda objekt du har, kan nattsynsläget vara till nytta för dig.

Egentligen låter det dig se de dolda objekten som om de var synliga, så att du kan behandla dem som du skulle normalt. I nattsynsläge är de dolda objekten synliga med en grå färg.

För att ändra nattsynsläget, använd Inställningar → Använd infraröda glasögon.

Ångra/gör om
Ångra/gör om

## Ångra/gör om

I Kig kan du ångra nästan alla ändringar du gör i dokumentet. Använd bara knapparna Ångra/Gör om i verktygsraden, eller motsvarande snabbtangenter.

Fullskärmsläge
Fullskärmsläge

## Fullskärmsläge

Kig har också ett fullskärmsläge. Klicka på motsvarande knapp i verktygsraden för att använda det, eller välj Inställningar → Fullskärmsläge.

För att lämna fullskärmsläge, högerklicka på skärmen på en plats där det inte finns något objekt, och välj Avsluta fullskärmsläge, eller tryck på snabbtangenterna Ctrl+Skift+F.

Kapitel 3. Objekttyper i Kig
Objekttyper i Kig

# Kapitel 3. Objekttyper i Kig

Kig stöder ett relativt stort antal objekttyper. Observera att alla tillgängliga objekttyper visas inte i verktygsraderna, det finns några objekt som du bara kan skapa via menyn Objekt i menyraden. Som med alla KDE-program, är förstås det som visas i verktygsraderna anpassningsbart. Prova alternativet Inställningar → Anpassa verktygsrader... om du vill göra det.

Kapitel 4. Avancerad användning
Avancerad användning

# Kapitel 4. Avancerad användning

## Sammanhangsberoende menyer

Kig har sammanhangsberoende menyer för objekt. Försök att högerklicka på ett objekt för att se menyn visas. Det finns många alternativ för att skapa andra objekt, ställa in färger, penntjocklek, stil, och till och med för att dölja, flytta eller ta bort objekt. Vissa objekt har egna alternativ (du kan t.ex. omdefiniera vissa punkter som ska vara begränsade till en linje om de inte tidigare var det, etc.). De här alternativen bör vara mycket enkla att förstå.

Vissa av åtgärderna i den sammanhangsberoende menyn för ett objekt behöver ett annat objekt definierat som referens, till exempel:

Rotera en form ett angivet antal grader omkring en punkt

  1. Klicka på Objekt → Vinklar → Vinkel med tre punkter och skapa önskad rotationsvinkel någonstans i Kigs fönster, vanligtvis på en plats som inte stör. Om så önskas, högerklicka på vinkeln och klicka på Lägg till textetikett → Vinkel i grader.

  2. Klicka med höger musknapp på vinkeln och välj Ange storlek och infoga vinkelns nya storlek i dialogrutan.

  3. Klicka på menyn Objekt och skapa önskat objekt.

  4. Högerklicka på formen och välj Transformera → Rotera.

  5. Ange önskad rotationspunkt.

  6. Klicka på vinkeln.

  7. Formen har roterats.

Förflytta ett objekt

  1. Klicka på Objekt → Vektorer och segment → Vektor och skapa objektet genom att välja start- och slutpunkt någonstans i Kigs fönster.

  2. För att justera vektorns längd och riktning måste du redigera dess start- och slutpunkt. Markera dem och välj Ange koordinat... i den sammanhangsberoende menyn.

  3. Klicka på Objekt och skapa önskat objekt.

  4. Högerklicka på objektet och välj Transformera → Förflytta.

  5. Välj vektorn att förflytta med.

Sammanhangsberoende dokumentmenyer
Sammanhangsberoende dokumentmenyer

## Sammanhangsberoende dokumentmenyer

Genom att högerklicka på dokumentet (dvs. inte på ett objekt) visas en meny som du kan använda för att börja skapa ett nytt objekt, ändra koordinatsystem som används, visa dolda objekt, zooma in och ut i dokumentet, och byta till fullskärmsläge.

Definiera makron
Definiera makron

## Definiera makron

En av de mest avancerade funktionerna i Kig är stödet för makron. Det låter dig definiera nya typer av objekt från andra som redan är definierade.

Antag till exempel att du vill göra ett makro för att skapa en cirkel från tre punkter på den. Du skulle mata in tre punkter, därefter skapa några vinkelräta linjer och mittpunkter till du hittar centrum. Nu kan du använda det befintliga kommandot ”Skapa en cirkel med centrum och punkt” (genom att använda en av de tre punkterna för kommandot). Följande bild bör klargöra det hela.

Därefter kommer definitionen av makrot. Välj menyalternativet Typer → Nytt makro... i menyn , eller klicka på knappen Nytt makro... i verktygsraden. En guide visas, som ber dig markera de givna objekten. I vårt exempel är det de tre punkterna. Så du markerar de tre punkterna (klicka på dem för att markera, klicka igen för att avmarkera), och klickar på knappen Nästa för att fortsätta. Markera därefter till sist slutobjekten (bara cirkeln i vårt exempel).

Efter föregående steg är färdiga, klicka på knappen Nästa för att fortsätta. Skriv in ett namn, och en valfri beskrivning för den nya typen, och klicka på knappen Slutför. Den nya makrotypen är nu klar.

För att använda den nya makrotypen, klicka på dess knapp i verktygsraden eller använd menyn Objekt. Du kan skapa ett makroobjekt precis som vilket annat objekt som helst.

Arbeta med typer
Arbeta med typer

## Arbeta med typer

Som du såg i föregående kapitel, låter Kig dig skapa dina egna objekt. Kig försäkrar också att när du har skapat ett objekt, sparas det när programmet avslutas och laddas när det startas. Du behöver inte spara eller ladda makrodefinitioner för hand. Men Kig låter dig göra mer med makron. Om du väljer Typer → Hantera typer..., ser du en dialogruta där du kan redigera dina typer. Den låter dig ändra befintliga typer, ta bort typer du inte längre använder, exportera dem till en fil, eller till och med ladda dem från en annan fil.

Textetiketter
Textetiketter

## Textetiketter

Kig låter dig lägga till textetiketter i en konstruktion. Det är mycket användbart för att lägga till namn, förklaringar, eller annan text i konstruktioner. Kig kan också visa varierande information om objekt (också kallade ”egenskaper”).

För att börja skapa en textetikett, tryck helt enkelt på knappen Textetikett i Kigs verktygsrad, eller välj menyalternativet Objekt → Övrigt → Textetikett.

Därefter måste du välja en plats för textetiketten. Du kan antingen bara välja en slumpmässig plats på skärmen, eller välja att ”ansluta” etiketten till ett objekt.

Efter du har valt var textetiketten ska placeras, visas dialogrutan för textetiketter. Här kan du skriva in texten som du vill visa i den nya etiketten, och klicka på Slutför. Etiketten ska nu synas i dokumentet.

Föregående exempel var enkelt, och begränsat till bara text. Men det finns också stöd för att visa varierande information om objekt i en etikett (du kan t.ex. konstruera en etikett med texten ”Det här segmentet är %1 enheter långt.”, där %1 skulle dynamiskt ersättas av längden av ett särskilt segment).

För att göra det, skriv in en text med ett antal platsmarkörer (%1, %2 etc.). Tryck därefter på knappen Nästa för att fortsätta. Om du vill ändra texten eller variablerna senare, kan du alltid gå tillbaka med knappen Tillbaka.

Guiden visar nu texten som du skrev in med alla platsmarkörerna ersatta med något i stil med argument 1. Att välja egenskapen ansluten till ett visst argument, görs genom att först klicka på argumentet i fråga. Klicka därefter på objektet som du behöver och som har egenskapen, och välj därefter själva egenskapen i menyn som visas. I exemplet ovan skulle du t.ex. klicka på argument 1, klicka på rätt segment i Kigs huvudfönster, och välja egenskapen Längd. Efteråt kan du fylla i resten av de variabla delarna, eller välja en annan egenskap för en av de variabla delarna om du vill ändra den. När du är klar, klicka på knappen Slutför, för att avsluta konstruktionen av textetiketten.

Lokus
Lokus

## Lokus

Kig har stöd för användning av lokus. Ett lokus definieras matematiskt som mängden av alla punkter eller linjer som uppfyller eller bestäms av specifika villkor, som i ”ett lokus av ekvidistanta punkter från en given punkt är en cirkel”. Härefter visas ett exempel på hur man använder lokus i Kig.

Tänk dig följande geometriska konstruktion: Vi ritar en cirkel, och en punkt som bara kan röra sig längs omkretsen (skapa punkten genom att placera markören på en cirkel och klicka på musens mittenknapp. Om du därefter försöker flytta punkten som skapats, ser du att du inte kan flytta den från cirkeln.) Därefter ritar vi ett segment från punkten till cirkelns mittpunkt, och det segmentets mittpunkt.

Om du nu flyttar punkten som är begränsad till cirkeln, ser du att den andra punkten rör sig tillsammans med den. Om du skulle hålla en penna på den andra punkten, och flytta den första punkten runt hela cirkeln, skulle en ny cirkel ritas med halva den andras storlek. Vägen som den andra punkten förflyttas medan den första rör sig runt cirkeln, är dess lokus.

I själva verket är det mycket enkelt att konstruera ett lokus för en punkt. Klicka på knappen Lokus i verktygsraden, eller välj menyalternativet Objekt → Övrigt → Lokus. Välj därefter den begränsade punkten som flyttbar punkt (texten Flyttbar punkt visas när du flyttar musen över den), och den andra som Beroende punkt. Lokus för den beroende punkten ritas då upp.

Kapitel 5. Skript
Skript

# Kapitel 5. Skript

Kig låter dig skapa egna typer med skriptspråket Python. Det är en mycket avancerad funktion, och jag känner bara till ett annat interaktivt geometriprogram som har en liknande funktion (GNOME-programmet Dr.Geo).

Grundfunktionen i Kigs Python-skript är att låta dig skapa dina egna objekt från vissa ursprungsobjekt. Om du till exempel är matematiklärare, och har ett avancerat sätt att räkna ut en intressant punkt på en kon, kan du skriva ner hur punkten ska beräknas med Python-kod, istället för att bråka med komplexa konstruktioner och makron, så visar Kig den åt dig.

Antag att du inte var medveten om Kigs inbyggda ”mittpunktstyp”, och du ville visa mittpunkten för två givna punkter. Då skulle du klicka på knappen Pythonskript i verktygsraden, eller välja Objekt → Övrigt → Pythonskript i menyraden. Då visas en guide för dig som låter dig gå vidare.

Det första du måste göra är att välja argument för skriptobjektet. I vårt exempel, betyder det de två punkterna som vi vill visa mittpunkten för. Markera dem i Kigs huvudfönster, och klicka på Nästa för att gå vidare.

Nu visas en textredigeringsruta, där du kan skriva in koden för skriptobjektet. Mallkod och några kommentarer finns redan på plats. Det är viktigt att försäkra dig om att din kod är giltig Python-kod. Personer som är bekanta med Python observerar att vi definierar i själva verket en Python-funktion, som heter `calc`. Därför är det nödvändigt att följa Pythons regler för definition av funktioner. Varje rad i funktionen måste till exempel börja med ett tabulatortecken. Den första raden som inte börjar med ett tabulatortecken avslutar funktionens definition.

Python-funktionen som vi vill definiera heter ”calc”, och i vårt fall tar den två argument. De är objekten som du har markerat som argument på föregående skärm. Du behöver lika många argument som du markerade där. De kallas `arg1` och `arg2`, men du kan ändra namnen till något meningsfullare om du vill.

Du kan göra alla sorters beräkningar i funktionen som du anser vara nödvändiga, med användning av de två argumenten om det behövs. Du ska returnera objektet som du vill definiera. I vårt fall är det ett punktobjekt. De två argumenten är också punktobjekt, och vi kan använda funktionen `Point.coordinate()` för att definiera de två givna punkternas koordinater.

Beräkningen som krävs i vårt exempel är mycket enkel. Vi lägger helt enkelt ihop de två koordinatuppsättningarna, och dividerar resultatet med två. Därefter skapar vi en ny punkt med resultatet. Python-koden som behövs är:

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

Om du nu klickar på knappen Slutför, visas det nya objektet i Kigs dokument. Om du flyttar en av punkterna, flyttas den nyskapade punkten med den. Mycket mer kraftfulla objekt kan byggas på detta sätt: Du uppmuntras att försöka dig på det.

Alla objekt i Kig kan användas i Python-kod. Som vi såg ovan, har punkter klassen `Point`, och du kan till exempel använda metoden `Point.coordinate()`. Du kan också returnera alla sorters objekt, inte bara `Point`. Många fler klasser och metoder är tillgängliga i Kigs Python-kod, och en mer fullständig referens om dem tillhandahålls på Kigs webbsida.

Kapitel 6. Funktioner i Kig
Funktioner i Kig

# Kapitel 6. Funktioner i Kig

- Kig är ett program med öppen källkod. Det betyder att du kan använda och ändra den på vilket sätt du vill. Att distribuera Kig är föremål för vissa begränsningar, i grunden att alla ska ha samma rättigheter att använda Kig, inklusive dina ändringar, som du och jag.

  Fri programvara utvecklas med en mycket öppen attityd, och utvecklarna är ofta mycket lyhörda för återmatning från användare. Om du därför har några frågor, klagomål eller något annat som rör Kig, kontakta gärna e-postlistan kde-edu på `(kde-edu AT kde.org)`.

- Kig är ett Kpart-program, vilket betyder att du kan bädda in det i andra KDE-program. Om du öppnar en `kig`-fil i Konqueror, kan den direkt visas i Konquerors fönster utan att behöva starta ett yttre program.

- Att arbeta med Kig ska vara mycket rättframt. Det är lätt och interaktivt att skapa objekt, med visning av preliminära resultat, etc. Flytta, markera och bygga fungerar alla som man kan förvänta sig. Stöd för att ångra bör också vara mycket intuitivt.

- Kig stöder makron som definieras på ett rättframt sätt. De här objekten visas för användaren som vanliga objekt. De sparas vid avslutning och laddas vid start, så de går inte förlorade när programmet avslutas. Du kan hantera objekten i dialogrutan Hantera typer (se ”Arbeta med typer”). Du kan exportera dem till filer, importera dem från filer, redigera och ta bort dem.

- Kig sparar data med ett enkelt XML-format.

- Kig stöder skapande av lokus.

- Kig låter dig exportera en Kig-fil till några intressanta format, som bilder, Xfig-filer och Latex-filer och SVG-vektorbilder. Det är ganska användbart, eftersom inte alla program ännu stöder Kigs filformat.

- Kig har ett mycket flexibelt transformeringssystem.

- Kig har som mål att fungera tillsammans med konkurrerande program. Det är därför det stöder KGeos filformat, KSegs filformat, samt delvis Dr.Geos och Cabris format. Dessutom planeras stöd för andra format.

Kapitel 7. Tack till och licens
Tack till och licens

# Kapitel 7. Tack till och licens

Huvudupphovsmän:

Kig copyright 2011-2015 David E. Narvaez `(david.narvaez AT computer.org)`

Kig copyright 2002-2013 Maurizio Paolini `(paolini AT dmf.unicatt.it)`

Kig copyright 2004-2010 Pino Toscano `(pino AT kde.org)`

Kig copyright 2002-2005 Dominique Devriese `(devriese AT kde.org)`

Dokumentation copyright 2002-2004 Dominique Devriese `(devriese AT kde.org)`.

Dokumentation copyright 2004-2005 Pino Toscano `(toscano.pino AT tiscali.it)`.

Granskad av Philip Rodrigues `(phil AT kde.org)`.

Stefan Asserhäll `(stefan.asserhall AT bredband.net)`

Den här dokumentationen licensieras under villkoren i GNU Free Documentation License.

Det här programmet licensieras under villkoren i GNU General Public License.

Appendix A. Bidrag
Bidrag

# Appendix A. Bidrag

## Fri programvara

Kig är fri programvara. Det betyder att källkoden är fritt tillgänglig på Internet, och att alla kan använda den, läsa den, ändra den och distribuera den.

Bidrag
Bidrag

## Bidrag

I det här kapitlet vill jag påpeka för dig (användaren) vilka rättigheter Kigs licens ger dig. Som med all fri programvara, tillåts (och uppmuntras) du att lösa problem du stöter på medan du använder det, att lägga till funktioner du saknar, att distribuera ditt ändrade program, och skicka tillbaka ändringarna via granskningsverktygen tillgängliga i KDE-gemenskapen.

Om du är osäker på dina rättigheter att använda programvaran, eller andra personers rätt att använda eventuella ändringar som du gör i programmet, etc. läs då licensen. Du hittar den i filen `COPYING` i Kigs källkod, eller med länken till licensen i dialogrutan Om Kig.

Hur kan jag bidra?
Hur kan jag bidra?

## Hur kan jag bidra?

Alla bidrag är välkomna. Om du inte tycker om ikonerna, eller tycker att handboken behöver uppdateras, eller om du har ett riktigt häftigt makro som du vill dela med världen, tveka inte att skicka det till mig. Observera att ditt bidrag kommer att distribueras enligt villkoren i GNU GPL. Du hittar licensvillkoren i filen `COPYING` i Kigs källkod, och i kapitlet Tack till och licens i den här handboken.