# &kig;-håndbogen

## Indledning

&kig; er et program til interaktiv geometri. Det er beregnet til at tjene to formål:

- At tillade elever at udforske matematiske figurer og begreber interaktivt ved brug af en computer.

- At tjene som et WYSIWYG-værktøj til at tegne matematiske figurer og inkludere dem i andre dokumenter.

Du kan rapportere problemer i &kig; ved brug af det interne fejlrapport-værktøj (Hjælp Rapportér fejl...), eller blot ved at kontakte mig på devriese@kde.org.

Da &kig; understøtter makroer og konstruktionen af lokuser, kan det lade sig gøre at definere nogle ret avancerede makroer. Hvis du har lavet en interessant makro, som du tror kunne være nyttig for andre, så send den venligst til mig på devriese@kde.org, så jeg kan inkludere den i distributionen (hvis du gør det vil den komme under samme licens som &kig;'s license, nemlig GPL, så andre kan bruge den frit og adaptere den).

## Basal brug

### Konstruktion af objekter

#### Konstruktion af punkter

Du kan konstruere punkter på adskillige måder:

- Vælg Objekter Punkter Punkt fra menulinjen eller tryk på en passende knap i værktøjslinjen. Du kan så konstruere et punkt ved at klikke på den ønskede position i vinduet.

  Rent faktisk virker dette også på samme måde til at konstruere andre objekter: klik på den ønskede indgang på menulinjen eller knap på værktøjslinjen og vælg de nødvendige punkter til at konstruere objektet.

- Da du ofte har brug for at konstruere punkter, vil et simpelt klik et eller andet sted på skærmen med den midterste museknap konstruere et punkt for dig, uden at gå til en menu eller knap.

- Du kan konstruere punkter mens du er ved at bygge andre objekter i baggrunden, hvis du vil ved at vælge dem for objektet du er ved at bygge. For mere om dette, se constructing-other-objects.

Et punkt er blevet konstrueret Et punkt er blevet konstrueret

#### Konstruktion af andre objekter

Konstruction af andre objekter end punkter gøres sædvanligvis ved at vælge en passende indgang i Objekter-menuen, eller ved at klikke på en af værktøjslinjens knapper.

Konstruktion af en cirkel Konstruktion af en cirkel

Dette vil starte konstruktionen af den valgte objekttype. Alle disse typer kræver argumenter. For eksempel, hvis du valgte at konstruere en cirkel ved centrum og punkt, vil du skulle give det to punkter: et for centrum, og et for punktet på cirklen.

Disse argumenter er også objekter, som også kan vælges blot ved at klikke på dem. Når du bevæger dig over et argument som du ønsker at bruge til at konstruere et objekt, vil et foreløbigt billede blive vist af hvordan objektet vil komme til at se ud. For objekter der kræver punkter som argumenter, kan du konstruere et nyt punkt ved den nuværende markørposition og vælge det ved at klikke med venstre museknap.

Du kan altid annullere konstruktionen af det nye objekt ved at trykke på &Esc;-tasten eller ved at klikke på Stop-knappen (rød oktagon med et X) på værktøjslinjen.

Konstruktion af en cirkel. Konstruktion af en cirkel

### Valg af objekter

Valg af objekter kan gøres på to måder:

- Et objekt bliver valgt ved simpelthen at klikke på det, hvilket rydder det nuværende valg. Hvis du ikke ønsker at vælge flere objekter samtidigt, så hold &Ctrl;-tasten nede mens du klikker på et objekt.

- Ved at klikke på et tomt sted på skærmen og trække, kan du vælge alle objekter indenfor det rektangel der opstår. Dette vil rydde det nuværende valg. Som i det tidligere tilfælde vil det at holde &Ctrl;-tasten nede tillade dig at beholde den nuværende markering.

Valg af objekter Valg af objekter

### Flytning af objekter

For at flytte objekter må du først vælge dem.

Når de objekter du ønsker at flytte er blevet valgt, kan du begynde at flytte dem ved at venstre-klikke og trække en af dem. Når du er færdig så giv blot slip på &LMB;.

For visse typer objekter (især når de er defineret ved komplicerede lokuser), kan det være langsom at flytte dem hvis computeren er langsom. Dette er uheldigt, men uundgåelig givet de involverede beregninger.

Hvis du højreklikker på et af de markerede objekter, og vælger Flyt, vil flytning af musen flytte objektet. Når objektet er flyttet til den ønskede position, vil et venstreklik standse flytningen af objektet.

### Sletning af objekter

Sletning af objekter gøres ved først at vælge dem, og dernæst gøre et af følgende:

- Tryk på Delete-tasten.

- Tryk på slet-knappen i værktøjslinjen.

- Højre-klik på et af objekterne, og vælg Slet i den sammenhængsmenu der kommer frem.

### Vise og skjule objekter

I &kig;, kan objekter være skjulte. Dette gøres ved at vælge objekterne, klikke med &RMB; et af dem, og vælge Skjul i sammenhængsmenuen der kommer frem.

For ikke længere at skjule objekterne bruges Redigér Skjul intet. Dette vil gøre at ingen objekter længere vil være skjult.

### Fortryd/Annullér fortryd

I &kig;, kan du fortryde næsten enhver ændring du laver på dokumentet. Brug blot fortryd/annullér fortryd knapperne i værktøjslinjen er passende genveje.

### Fuldskærmstilstand

&kig; har også en fuldskærmstilstand. For at bruge den klikkes på en passende knap i værktøjslinjen eller Opsætning Fuldskærm vælges.

For at forlade fuldskærmstilstand klikkes med &RMB;på skærmen et sted hvor der ikke er noget objekt til stede og Slå fuldskærmstilstand til og fra vælges, eller der trykkes på &Esc;-tasten.

## &kig;'s objekttyper

&kig; understøtter et temmelig stort antal objekttyper. Bemærk venligst at ikke alle de tilgængelige objekttyper er vist i værktøjslinjerne: der er nogle objekter som du kun kan konstruere via Objekter-menuen i menulinjen. Naturligvis er, som med alle &kde;'s programmer, indholdet af værktøjslinjerne indstilleligt. Prøv Opsætning Indstil værktøjslinjer... hvis du ønsker at gøre dette.

## Avanceret brug

### Sammenhængsmenuer

&kig; har sammenhængsmenuer for sine objekter. Prøv at klikke med &RMB; på et objekt for at se en sammenhængsmenu komme frem. Der er mange valgmuligheder: til at konstruere andre objekter, sætte farver, og endog skjule, flytte eller slette objekter. Nogle objekter har deres egne indstillinger (⪚ kan du redefinere visse punkter til at være begrænset til en linje hvor de tidligere ikke var, &etc;). Disse valgmuligheder skulle være rimeligt nemme at forstå.

### Dokument sammenhængsmenuer

Højre-klik på dokumentet (&ie; ikke på et objekt) vil præsentere en popop som du kan bruge til at begynde på at konstruere et nyt objekt,ændre det brugte koordinatsystem, vise skjulte objekter, og endog formindske og forstørre dokumentet.

### Definere makroer

En af de mere avancerede egenskaber i &kig; er dets støtte for makroer. Dette tillader dig at definere nye typer af objekter ud fra dem der allerede er defineret.

For eksempel: Lad os antage du ønsker at lave en makro til at konstruere en cirkel ud fra tre punkter på den > Du vil så indgive tre punkter, derpå konstruere nogle vinkelrette linjer og midtpunkter indtil du finder centrum. Nu kan du bruge den eksisterende kommando Konstruér en cirkel ved centrum og et punkt (ved brug af et af de tre punkter som punktet for denne kommando).Følgende billede skulle gøre dette en smulemere klart.

Testkørsel af makroer Testkørsel af makroer

Dernæst kommer at definere makroen. Vælg Ny makro fra Type-menuen eller klik på knappen på værktøjslinjen. En guide vil komme frem der beder dig om at vælge de givne objekter. I vort eksempel, er disse de tre punkter. Vælg de tre punkter (klik på dem for at vælge dem, klik igen for at fravælge) og klik på Næste-knappen for at fortsætte. Endelig vælges de sidste objekter (kun cirklen i vort eksempel).

Makro-guiden Makro-guiden

Efter de tidligere skridt er færdige, klik på Næste-knappen for at fortsætte. Indtast et navn og hvis du vil en beskrivelse for din nye type, og klik på Færdig-knappen. Din makrotype er nu færdig.

For at bruge den nye makrotype, klik på dens knap på værktøjslinjen eller brug Objekter-menuen. Konstruktion af et makro-objekt er helt ligesom at konstruere et vilkårligt andet objekt.

Brug din nye type Brug din nye type

### Arbejde med typer

Som du så i det tidligere kapitel, tillader &kig; dig at lave dine egne objekter. &kig; sørger også for at når du har lavet et objekt, bliver det gemt ved afslutning og indlæst når der startes igen. Du behøver ikke at gemme eller indlæse makro-definitioner manuelt. &kig; tillader dig imidlertid at gøre mere med makroerne. Hvis du vælger Typer Håndtér typer... fra menuen vil du se en dialog hvor du kan redigere dine typer. Det tillader dig at slette typer der ikke længere bliver brugt, eksportere dem til en fil, eller endog indlæse dem fra en anden fil.

Redigér-typer dialog Rediger-typer dialogen

### Tekst-etiketter

&kig; tillader dig at tilføje tekst-etiketter til en konstruktion. Det er meget nyttigt til at tilføje navne, forklaringer eller anden tekst i konstruktioner. &kig; kan også vise variabel information om objekter (også kendt som egeneskaber).

For at starte konstruktionen af en tekst-etikette, tryk blot på Tekst-etikette-knappen i &kig;'s værktøjslinje eller vælg Objekter Andet Tekst-etikette i menulinjen.

Dernæst skal du vælge et sted for tekst-etiketten. Du kan enten blot vælge et tilfældigt sted på skærmen, eller vælge at knytte etiketten til et objekt.

Tilknytning af en etiket til en cirkel... Tilknytning af en etiket til en cirkel...

Efter du har valgt hvor etiketten skal være, kommer tekst-etikette dialogen frem. Her kan du skrive den tekst du ønsker skal vises i den nye etikette, og klikke på Færdig. Etiketten skulle nu være tilstede i dit dokument.

Tekst-etikette dialogen Tekst-etikette dialogen

Det forrige eksempel var meget simpelt og begrænset kun til tekst. Der er imidlertid også støtte for at vise variabel information om objekter i en etikette (⪚. kan du konstruere en etikette med teksten Dette linjestykke er %1 enheder langt... hvor %1 bliver erstattet dynamisk med længden af et bestemt linjestykke).

For at gøre dette indtastes en tekst med et antal pladsholdere ( %1, %2 &etc;) i sig. Tryk så på Næste-knappen for at fortsætte. Hvis du ønsker at ændre teksten eller variablerne senere kan du gå tilbage ved brug af Tilbage-knappen.

Guiden viser nu teksten du skrev med alle pladsholdere erstattet med noget i retning af argument 1. Valg af egenskaben forbundet med et bestemt argument gøres ved først at klikke på argumentet det drejer sig om. Derpå klikkes på objektet du behøver som har denne egenskab, og så vælges selve egenskaben i popop-menuen der kommer frem. For eksempel, i eksemplet ovenfor, ville du klikke på argument 1, klikke på det rigtige linjestykke i &kig;'s hovedvindue og så vælge egenskaben Længde. Bagefter kan du udfylde resten af de variable dele, eller vælge en anden egenskab for en af de variable dele hvis du ønsker at ændre det. Når du er parat klikkes på Færdig-knappen for at færdiggøre konstruktionen af tekstetiketten.

Valg af en egenskab for en variabel del Valg af en egenskab for en variabel del

### Lokuser

&kig; understøtter brugen af lokuser. Et lokus er matematisk defineret som mængden af alle punkter eller linjer der tilfredsstiller eller er bestemt af bestemte betingelser; som i lokus af punkter med samme afstand fra et givet punkt er en cirkel. Lad os kigge på et eksempel på hvordan lokusser bruges i &kig;.

Betragt følgende geometriske konstruktion: Vi tegner en cirkel, og et punkt der kun kan bevæge sig langs randen af cirklen (konstruér dette punkt ved at putte markøren på en cirkel, og klikke med den &MMB; museknap. Hvis du så prøver at flytte det resulterende punkt, vil du se at du ikke kan flytte det væk fra cirklen). Vi tegner så et linjestykke fra dette punkt til centrum for cirklen, og midtpunktet af dette linjestykke.

En simpel konstruktion ved brug af lokus En simpel konstruktion ved brug af lokus

Hvis du nu bevæger punktet der er begrænset til cirklen, kan du se at det andet punkt bevæger sig samtidigt. Hvis du ville holde en pen over det andet punkt, og du flytter det første punkt rundt på hele cirklen, vil en ny cirkel, på den halve størrelse af den anden blive tegnet. Stien det andet punkt gennemløber mens det første bevæger sig gennem cirklen er dets lokus.

Rent faktisk at konstruere et lokus for et punkt er meget nemt. Klik på lokusknappen i værktøjslinjen eller vælg Objekter Andet Lokus fra menulinjen. Vælg så det begrænsede punkt som det bevægende punkt (tekst Bevægende punkt vil komme frem når du har musen over det), og det andet punkt som det afhængige punkt. Så vil lokus for det afhængige punkt blive tegnet.

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

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 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 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.

Konstruerede et script-objekt 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 ⪚ `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 på &kig;'s hjemmeside.

## &kig;'s egenskaber

- &kig; er et open source program. Det betyder at det står dig frit for at bruge og ændre det som du har lyst. Distribution af &kig; foregår under nogle restriktioner, basalt set skal alle have de samme rettigheder til at bruge &kig;, inklusive at lave ændringer, som dig og mig.

  Free software programmer udvikles i en meget åben ånd, og dets udviklere er sædvanligvis meget responsive for tilbagemeldinger fra brugere. Derfor, hvis du skulle have spørgsmål, beklagelser, eller hvadsomhelst om &kig;, så lad forfatteren vide om det på devriese@kde.org.

- &kig; er et KPart-program, hvilket betyder at du kan indlejre det i andre &kde;-programmer. Hvis du åbner en `.kig`-fil i &konqueror;, kan den åbnes direkte i &konqueror;-skærmen uden at behøve at starte et eksternt program.

- Det skulle være ligetil at arbejde med &kig;. Konstruktion af objekter er nemt og interaktivt, med foreløbige resultater der bliver vist &etc;. Det foregår som man skulle forvente når man flytter, markere og bygger ting. Støtte for at fortryde skulle også være meget intuitivt.

- &kig; understøtter makroer defineret på en ligetil måde. Disse objekter bliver præsenteret for brugeren som normale objekter. De bliver gemt ved afslutning og indlæst ved opstart, så de går ikke tabt ved afslutning. Du kan håndtere disse objekter i dialogen Håndtér typer (se working-with-types. Du kan eksportere dem til filer, importere dem fra filer, og slette dem.

- &kig; gemmer sine data i et rent &XML;-format.

- &kig; understøtter konstruktion af lokuser.

- &kig; tillader dig at eksportere en &kig;-fil til nogle interessante formater, såsom billeder og XFig- og LaTeX-filer, og SVG vektorbilleder . Dette er ret nyttigt da ikke alle programmer understøtter &kig;'s filformat endnu.

- &kig; har et meget fleksibelt transformationssystem.

- &kig; prøver på at være kompatibel med sine konkurrenter. Det er derfor den understøtter &kgeo;'s filformat, &kseg;'s filformat og delvis støtter &drgeo;- og &cabri;-formaterne, med støtte for andre formater også planlagt.

## Spørgsmål og svar

&reporting.bugs; &updating.documentation;

## Medvirkende og licens

&kig;

&kig; ophavsret 2002-2004 Dominique Devriese devriese@kde.org

Dokumentation ophavsret 2002-2004 Dominique Devriese. devriese@kde.org.

Gennemset af &Philip.Rodrigues; &Philip.Rodrigues.mail;.

&erik.kjaer.pedersen.credit; &underFDL; &underGPL;

## Installation

### Hvordan får du fat på &kig;

&install.intro.documentation;

### Kompilering og installation

&install.compile.documentation;

## Hjælp til

### Frie programmer

&kig; er Free Software. Det betyder at dets kildekode er frit tilgængelig på internettet, og enhver kan bruge den, læse den, ændre den og distribuere den. Jeg arbejder på den som en hobby, og jeg har allerede lært en masse om C++ programmering, &kde;/&Qt;, matematik, samarbejde om software open source projekter i processen.

### Hjælp til

I dette kapitel vil jeg påpege over for dig (brugeren) de rettigheder som &kig;'s licens giver dig. Som med al fri software har du lov til (og opfordres) til at ordne problemer du møder mens du bruger det, at tilføje egenskaber du mangler, at distribuere dit ændrede program, og til at sende disse ændringer til mig på devriese@kde.org, så jeg kan inkludere dem i den næste udgave så andre kan nyde dem. Bemærk venligst at jeg personligt ikke har nogen finansiel interesse i dette projekt overhovedet.

Hvis du er usikker på dine rettigheder til brugen af denne software, eller andre menneskers ret til at bruge ændringer du laver på dette program &etc;, så læs venligst licensen. Du kan finde den i `COPYING`-filen i &kig;'s kildetræ eller license-fanebladet i Om Kig-dialogen.

### Hvordan kan jeg bidrage ?

Ethvert bidrag er velkomment. Hvis du ikke kan lide ikonerne, eller at manualen trænger til at blive opdateret, eller du har denne virkelig interessante makro som du ønsker at dele med hele verden, så hold dig ikke tilbage med at sende den til mig. Husk venligst at dine bidrag vil blive distribueret under betingelserne i &GNU;'s GPL du kan finde betingelserne i denne license i `COPYING`-filen i &kig;'s kildetræ, og i Medvirkende og licens kapitlet i denne manual.

&documentation.index;