1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
|
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"dtd/kdex.dtd" [
<!ENTITY kseg "<application
>KSeg</application
>">
<!ENTITY cabri "<application
>Cabri</application
>">
<!ENTITY drgeo "<application
>Dr.Geo</application
>">
<!ENTITY package "tdeedu">
<!ENTITY kappname "&kig;">
<!ENTITY % addindex "IGNORE">
<!ENTITY % Dutch "INCLUDE">
<!-- change language only here -->
]
>
<book lang="&language;">
<bookinfo>
<title
>Het handboek van &kig;</title>
<authorgroup>
<author
><firstname
>Dominique</firstname
> <surname
>Devriese</surname
> <affiliation
> <address
><email
>devriese@kde.org</email
></address>
</affiliation>
</author>
&Tijmen.Baarda;&Rinse.Devries;
</authorgroup>
<copyright>
<year
>2002</year
><year
>2003</year
><year
>2004</year
> <holder
>Dominique Devriese</holder>
</copyright>
<legalnotice
>&FDLNotice;</legalnotice>
<date
>2005-08-20</date
> <releaseinfo
>0.10.5</releaseinfo>
<abstract>
<para
>&kig; is een &kde;-toepassing voor interactieve meetkunde. </para>
</abstract>
<keywordset>
<keyword
>KDE</keyword>
<keyword
>KDE-Edu</keyword>
<keyword
>Kig</keyword>
<keyword
>Interactieve meetkunde</keyword>
<keyword
>KGeo</keyword>
<keyword
>Cabri</keyword>
<keyword
>Dr.Geo</keyword>
<keyword
>KSeg</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title
>Inleiding</title>
<para
>&kig; is een toepassing voor interactieve meetkunde. Het programma heeft twee doelen: </para>
<itemizedlist>
<listitem
><para
>Ervoor zorgen dat studenten interactief wiskundige figuren en ideeën kunnen bestuderen met behulp van de computer. </para
></listitem>
<listitem
><para
>Een <acronym
>WYSIWYG</acronym
>-hulpmiddel maken waarmee wiskundige figuren getekend kunnen worden die in andere documenten kunnen worden opgenomen.</para
></listitem>
</itemizedlist>
<para
>Problemen met &kig; kunt u melden via het interne bugrapporteerhulpmiddel (<menuchoice
><guimenu
>Help</guimenu
><guimenuitem
>Bug rapporteren...</guimenuitem
></menuchoice
>), of gewoon door contact met mij op te nemen via <email
>toscano.pino@tiscali.it</email
>. </para>
<para
>Omdat &kig; macro's en de constructie van meetkundige plaatsen ondersteunt, kunnen ook tamelijk geavanceerde macro's worden gedefinieerd. Als u een interessante macro heeft gemaakt, waarvan u denkt dat het ook handig kan zijn voor andere mensen, kunt u die naar me sturen via <email
>toscano.pino@tiscali.it</email
>, zodat ik die kan opnemen in de distributie. (Als u dit doet, wordt uw macro uitgegeven onder de voorwaarden van de licentie van &kig;, de <ulink url="http://www.gnu.org/licenses/licenses.html#GPL"
>GPL</ulink
>, zodat anderen het vrij kunnen gebruiken en aanpassen). </para>
</chapter>
<chapter id="using-kig-basic">
<title
>Beginselen van het gebruik</title>
<section id="constructing-objects">
<title
>Objecten tekenen</title>
<section id="constructing-points">
<title
>Punten tekenen</title>
<para
>U kunt op verschillende manieren punten tekenen:</para>
<itemizedlist>
<listitem>
<para
>Selecteer <menuchoice
><guimenu
>Objecten</guimenu
><guisubmenu
>Punten</guisubmenu
><guimenuitem
> Punt</guimenuitem
></menuchoice
> in de menubalk of klik op de bijbehorende knop in de werkbalk. U kunt dan een punt tekenen door te klikken op de gewenste positie in het venster.</para
> <note
><para
>Dit werkt trouwens ook voor het tekenen van andere objecten: klik op de gewenste menu-ingang of werkbalkknop en selecteer die zaken die nodig zijn om het object te tekenen.</para
></note>
</listitem>
<listitem>
<para
>Omdat u vaak punten zult moeten tekenen, kunt u ook eenvoudig ergens op het scherm klikken met de &MMB;. Er wordt daar dan een punt getekend, zonder gebruik van een menu of knop. </para>
</listitem>
<listitem>
<para
>U kunt punten tekenen terwijl u andere objecten maakt in de achtergrond, waarbij u ze desgewenst selecteert voor het object dat u aan het maken bent. Zie ook de <xref linkend="constructing-other-objects"/>. voor meer informatie. </para>
</listitem>
</itemizedlist>
<screenshot>
<screeninfo
>Er is een punt getekend</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructed_a_point.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Er is een punt getekend</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="constructing-other-objects">
<title
>Andere objecten tekenen</title>
<para
>U kunt een object anders dan een punt tekenen door de bijbehorende ingang te selecteren in het menu <guimenu
>Objecten</guimenu
>, of door te klikken op één van de werkbalkknoppen. </para>
<screenshot>
<screeninfo
>Een cirkel tekenen</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructing_a_circle.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Een cirkel tekenen</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Hiermee begint het tekenen van het gekozen objecttype. Bij elk van deze typen zijn argumenten nodig. Als u bijvoorbeeld "Cirkel met behulp van middelpunt en punt" selecteert, moet u twee punten geven: één voor het middelpunt en één voor het punt op de cirkel. </para>
<para
>Deze argumenten zijn ook objecten, die u kunt selecteren door er gewoon op te klikken.Als u de muisaanwijzer beweegt boven een argument dat u wilt gebruiken om een object te tekenen, wordt er een voorlopige afbeelding getoond die laat zien hoe het object er uit gaan zien. U kunt, voor objecten die punten nodig hebben als argumenten, een nieuw punt plaatsen op de huidige muispositie door te klikken met de &LMB;. </para>
<para
>U kunt het tekenen van een nieuw object altijd annuleren door op de &Esc;-knop te drukken of door te klikken op de <guiicon
>Stop</guiicon
>-knop (rode achthoek met een <quote
>X</quote
>) in de werkbalk. </para>
<screenshot>
<screeninfo
>Een cirkel tekenen.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructing_a_circle_2.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Een cirkel tekenen</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
</section>
<section id="selecting-objects">
<title
>Objecten selecteren</title>
<para
>U kunt op twee manieren objecten selecteren: </para>
<itemizedlist>
<listitem>
<para
>U kunt een object selecteren door erop te klikken. De huidige selectie gaat dan verloren.U kunt meerdere objecten tegelijkertijd selecteren door tijdens het klikken op een object de &Ctrl;-toets ingedrukt te houden. </para>
</listitem>
<listitem>
<para
>Door te klikken en te slepen over een leeg deel van het scherm worden alle objecten in de zo ontstane rechthoek geselecteerd. Hiermee wordt ook de huidige selectie gewist. Zoals in de vorige situatie kunt u dit voorkomen door de &Ctrl;-toets ingedrukt te houden. </para>
</listitem>
</itemizedlist>
<para
>Met meer dan een object onder de muis kunt u eenvoudig een object selecteren of aan de huidige selectie toevoegen. Klik met de &LMB; terwijl u de &Shift;-toets ingedrukt houdt, u krijgt dan een venstertje waarin alle objecten onder de muis worden genoemd. U kunt hierin het object kiezen dat u wenst. Zoals al eerder is gezegd wordt de selectie door de &Ctrl;-toets beïnvloed. </para>
<screenshot>
<screeninfo
>Objecten selecteren</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="selecting_objects.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Objecten selecteren</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="moving-objects">
<title
>Objecten verplaatsen</title>
<para
>U moet objecten eerst <link linkend="selecting-objects"
>selecteren</link
> voor u ze kunt verplaatsen. </para>
<para
>Als u de objecten die u wilt verplaatsen heeft geselecteerd, kunt u ze verplaatsen door ze met de &LMB; te verslepen. Laat de &LMB; weer los als u klaar bent. </para>
<note
><para
>Bij sommige objecttypen (vooral bij gecompliceerde meetkundige plaatsen) kan het verplaatsen langzaam gaan op oudere hardware. Dit is natuurlijk jammer, maar onvermijdelijk door het vele rekenwerk. </para
></note
> <note
><para
>U kunt objecten ook verplaatsen door met de &RMB; op een object te klikken en <guimenuitem
>Verplaatsen</guimenuitem
> te selecteren in het menu. Door de muis te bewegen verplaatst u het object. Als u het object op de juiste plaats heeft gebracht, kunt u het verplaatsen stoppen door met de &LMB; te klikken.</para
></note>
</section>
<section id="deleting-objects">
<title
>Objecten verwijderen</title>
<para
>U kunt objecten verwijderen door ze te <link linkend="selecting-objects"
>selecteren</link
> en daarna één van het volgende te doen: <itemizedlist>
<listitem>
<para
>Door op de <keycap
>Delete</keycap
>-toets te drukken; </para>
</listitem>
<listitem>
<para
>Door op de knop <guiicon
>verwijderen</guiicon
> in de werkbalk te klikken; </para>
</listitem>
<listitem>
<para
>Door met de <mousebutton
>rechter</mousebutton
> muisknop op één van de objecten te klikken en <guimenuitem
>Verwijderen</guimenuitem
> te selecteren in het <link linkend="objects-context-menus"
>contextmenu</link
> dat verschijnt. </para>
</listitem>
</itemizedlist>
</para>
</section>
<section id="showing-hiding-objects">
<title
>Objecten tonen en verbergen</title>
<para
>In &kig; kunnen objecten worden verborgen. Dit kunt u doen door de objecten te selecteren, er met de &RMB; op te klikken en <guimenuitem
>Verbergen</guimenuitem
> te selecteren in het <link linkend="objects-context-menus"
>contextmenu</link
> dat verschijnt. </para>
<para
>Als u de objecten weer wilt terughalen, klikt u op <menuchoice
><guimenu
>Bewerken</guimenu
><guimenuitem
>Alles tonen</guimenuitem
></menuchoice
>. Hierdoor worden alle verborgen objecten weer getoond. </para>
<section id="night-vision">
<title
>Nachtvisie</title>
<para
>Nachtvisie is een speciale manier van werken met verborgen objecten. Wanneer u iets in een of meer objecten moet verplaatsen of wijzigen zonder alle verborgen objecten die er zijn weer zichtbaar te maken, dan kan nachtvisie nuttig zijn. </para>
<para
>In principe kunt u dan de verborgen objecten zien alsof zij zichtbaar zijn, zodat u ze zoals gewoonlijk kunt manipuleren. Bij gebruik van nachtvisie zijn de verborgen objecten zichtbaar in een grijze kleur. </para>
<para
>Om de nachtvisie aan/uit te schakelen, kies <menuchoice
><guimenu
>Instellingen</guimenu
><guimenuitem
>Nachtvisie</guimenuitem
></menuchoice
>. </para>
</section>
</section>
<section id="undo-redo">
<title
>Ongedaan maken/opnieuw</title>
<para
>In &kig; kan bijna elke verandering in het document ongedaan worden gemaakt. Klik hiervoor op de knop <guiicon
>Ongedaan maken</guiicon
> of <guiicon
>Opnieuw</guiicon
> in de taakbalk of gebruik de bijbehorende sneltoetsen. </para>
</section>
<section id="full-screen-mode">
<title
>Volledig scherm</title>
<para
>&kig; kan ook worden gebruikt in een volledig scherm. Klik hiervoor op de daartoe aanwezige knop in de werkbalk of selecteer <menuchoice
><guimenu
>Beeld</guimenu
> <guimenuitem
>Volledig-scherm aan/uit</guimenuitem
></menuchoice
>. </para>
<para
>Als u het volledig scherm weer wilt verlaten, klikt u met de &RMB; op het scherm op een plaats waar geen object is en selecteert u <guimenuitem
>Volledig scherm aan/uit</guimenuitem
>, of drukt u op de &Esc;-toets. </para>
</section>
</chapter>
<chapter id="kig-object-types">
<title
>Objecttypen van &kig;</title>
<para
>&kig; ondersteunt een groot aantal objecttypen. Let er wel op dat niet alle beschikbare objecttypen aanwezig zijn in de werkbalken, maar dat er ook nog enkele objecten zijn die u alleen kunt tekenen via het menu <guimenu
>Objecten</guimenu
> in de menubalk. Natuurlijk kunt u, net als bij alle andere &kde;-toepassingen, de inhoud van de werkbalken aanpassen. Probeer de optie <menuchoice
><guimenu
>Instellingen</guimenu
> <guimenuitem
>Werkbalken instellen...</guimenuitem
></menuchoice
> als u dit wilt. </para>
</chapter>
<chapter id="using-advanced">
<title
>Gevorderd gebruik</title>
<section id="objects-context-menus">
<title
>Contextmenu's</title>
<para
>&kig; heeft contextmenu's voor de objecten. Klik met de &RMB; op een object om een contextmenu te openen. Er zijn vele opties: om andere objecten te tekenen, kleuren in te stellen, en zelfs om objecten te verbergen, te verplaatsen of te verwijderen. Sommige objecten bevatten eigen opties (u kunt bijvoorbeeld bepaalde punten herdefiniëren zodat ze geforceerd worden naar een lijn als ze dat daarvoor niet waren, enzovoort). Deze opties zijn allemaal erg begrijpelijk. </para>
</section>
<section id="document-context-menus">
<title
>Documentcontextmenu's</title>
<para
>Door met de <mousebutton
>rechter</mousebutton
> muisknop te klikken op het document (dus niet op een object) verschijnt er een menu waarmee u een nieuw object kunt gaan tekenen, het coördinatenstelsel kunt wijzigen, verborgen objecten tonen en zelfs inzoomen en uitzoomen op het document. </para>
</section>
<section id="defining-macros">
<title
>Macro's definiëren</title>
<para
>Eén van de wat meer gevorderde mogelijkheden van &kig; is de ondersteuning voor macro's. Hiermee kunt u nieuwe objecttypen creëren met behulp van andere reeds gedefinieerde objecten. </para>
<para
>Laten we een voorbeeld geven. Stelt u zich voor dat u een macro wilt maken die een cirkel tekent als drie punten die erop liggen zijn gegeven. U zou dan de drie punten invoeren, en dan enkele middens van twee punten en loodlijnen tekenen tot u het middelpunt van de cirkel vindt. U kunt dan de reeds bestaande opdracht <quote
>Cirkel met middelpunt en punt</quote
> gebruiken (met behulp van een van de drie gegeven punten). De volgende afbeelding moet dit iets duidelijker maken. </para>
<screenshot>
<screeninfo
>Macro's testen</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="test_run_macro.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Macro's testen</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Hierna komt het definiëren van de macro. Selecteer <guimenuitem
>Nieuwe macro</guimenuitem
>in het menu <guimenu
>Typen</guimenu
> of klik op de knop in de werkbalk. Er verschijnt een assistent waarin gevraagd wordt om de objecten die gegeven zijn te selecteren. In ons voorbeeld zijn het de drie punten. Selecteer deze drie punten (als u klikt worden ze geselecteerd, als u nog eens klikt gedeselecteerd) en klik op <guibutton
>Volgende</guibutton
> om door te gaan. Selecteer tenslotte de laatste objecten (in ons voorbeeld alleen de cirkel). </para>
<screenshot>
<screeninfo
>De macroassistent</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="macro_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>De macroassistent</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Als u klaar bent met de vorige stappen, klikt u op de knop <guibutton
>Volgende</guibutton
> om door te gaan. Vul een naam in en eventueel een beschrijving van uw nieuwe type, en klik op de knop <guibutton
>Voltooien</guibutton
>. Uw macrotype is nu klaar. </para>
<para
>Om het nieuwe macrotype te gebruiken, klik op de knop ervan in de werkbalk of gebruik het menu <guimenu
>Objecten</guimenu
>. Het maken van een macro is net als het maken van elk ander object. </para>
<screenshot>
<screeninfo
>Uw nieuwe type gebruiken</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="macros_at_work.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Uw nieuwe type gebruiken</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="working-with-types">
<title
>Werken met typen</title>
<para
>Zoals u heeft gezien in het vorige hoofdstuk, kunt u met &kig; uw eigen objecten maken. Als u een object heeft gemaakt, wordt het door &kig; zelf opgeslagen bij het afsluiten en geladen bij het opstarten. Het is dus niet nodig om macrodefinities zelf op te slaan of te laden. Maar &kig; stelt u ook in staat meer met de macro's te doen. Als u klikt op <guimenuitem
>Typen beheren...</guimenuitem
> in het menu <guimenu
>Typen</guimenu
>, verschijnt er een dialoogvenster waarin u uw eigen typen kunt bewerken. Typen die u niet meer gebruikt kunt u hiermee verwijderen, u kunt typen in een bestand opslaan en u kunt ze zelfs inlezen uit een ander bestand. </para>
<screenshot>
<screeninfo
>Dialoogvenster Typen beheren</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="edit_types_dialog.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Het dialoogvenster Typen beheren</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="text-labels">
<title
>Tekstlabels</title>
<para
>Met &kig; kunt u teksten aan een tekening toevoegen. Zo kunt u bijvoorbeeld namen, uitleg en andere tekst bij uw tekeningen zetten. Ook kan &kig; hiermee variabele informatie tonen over objecten (ook wel bekend als <quote
>eigenschappen</quote
>). </para>
<para
>Om een tekst te maken klikt u op de knop Tekstlabel in de werkbalk of selecteert u <menuchoice
><guimenu
>Objecten</guimenu
><guisubmenu
>Andere </guisubmenu
><guimenuitem
>Tekstlabel</guimenuitem
> </menuchoice
> in de menubalk. </para>
<para
>Nu moet u de plaats van de tekst aangeven. U kunt gewoon een plaats op het scherm kiezen, maar u kunt de tekst ook <quote
>koppelen</quote
> aan een object. </para>
<screenshot>
<screeninfo
>Een label aan een cirkel koppelen...</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="text_label_attaching.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Een label aan een cirkel koppelen...</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Nadat u een plaats heeft gekozen, verschijnt het dialoogvenster Tekstlabel. Hierin kunt u de gewenste tekst intypen. Klik op <guibutton
>Voltooien</guibutton
> om de tekst op te nemen in uw document. </para>
<screenshot>
<screeninfo
>Het dialoogvenster Tekstlabel</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="text_label_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Het dialoogvenster Tekstlabel</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Het vorige voorbeeld was erg eenvoudig, en beperkt tot alleen tekst. Het is echter ook mogelijk veranderlijke informatie over objecten in een tekst op te nemen (u kunt bijvoorbeeld een tekst maken: <quote
>Dit lijnstuk is %1 eenheden lang</quote
> waarin <token
>%i</token
> vervangen zal worden door de lengte van het betreffende lijnstuk). </para>
<para
>Als voorbeeld, vult u een tekst in met een aantal argumenten (<token
>%1</token
>, <token
>%2</token
>, enzovoort). Klik op <guibutton
>Volgende</guibutton
> als u klaar bent. U kunt altijd weer teruggaan als u de tekst of argumenten wilt wijzigen met de knop <guibutton
>Vorige</guibutton
>. </para>
<para
>De assistent toont nu de tekst die u heeft ingevuld waarin alle argumenten vervangen zijn door zoiets als <guilabel
>argument 1</guilabel
>. Het selecteren van de eigenschap die bij een bepaald argument hoort gebeurt door eerst te klikken op het argument waarom het gaat. Daarna klikt u op het object dat u eraan wilt koppelen en daarna selecteert u de gewenste eigenschap in het nu verschenen contextmenu.In het voorbeeld hierboven zou u klikken op <guilabel
>argument 1</guilabel
>, daarna op het juiste lijnstuk in het venster van &kig; en als laatste op de eigenschap <guilabel
>Lengte</guilabel
>. Hierna kunt u de rest van de variabelen invullen of een andere eigenschap kiezen voor één van de variabele gedeelten als u die zou willen veranderen. Als u klaar bent drukt u op <guibutton
>Voltooien</guibutton
> om de tekst te voltooien. </para>
<screenshot>
<screeninfo
>Een eigenschap kiezen voor een variabele</screeninfo>
<mediaobject>
<imageobject>
<imagedata
fileref="text_label_wizard__select_property.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Een eigenschap kiezen voor een variabele</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="locuses">
<title
>Meetkundige plaatsen</title>
<para
>In &kig; worden meetkundige plaatsen gebruikt. Een meetkundige plaats wordt in de Wiskunde gedefinieerd als de verzameling van punten met een bepaalde eigenschap zoals <quote
>In een plat vlak is de meetkundige plaats van alle punten die even ver liggen vanaf een bepaald punt een cirkel</quote
>. Hier volgt een voorbeeld hoe in &kig; meetkundige plaatsen worden gebruikt. </para>
<para
>Beschouw de volgende meetkundige constructie: we tekenen een cirkel en een punt dat zich op de omtrek van de cirkel kan bewegen (dit kunt u doen door met de &MMB; te klikken op de omtrek van een cirkel: als u daarna het punt probeert te verplaatsen zult u zien dat het punt niet van de cirkel af kan gaan). Daarna tekenen we een lijnstuk vanaf dat punt tot aan het middelpunt van de cirkel, en vervolgens het midden van dat lijnstuk. </para>
<screenshot>
<screeninfo
>Een eenvoudige constructie met een meetkundige plaats</screeninfo>
<mediaobject>
<imageobject>
<imagedata
fileref="simple_locus_construction.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Een eenvoudige constructie met een meetkundige plaats</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Als u nu het punt dat gedwongen op de cirkel ligt verplaatst zult u zien dat het tweede punt meebeweegt. Als u een pen zou houden boven het tweede punt en u het eerste punt de hele cirkel rond zou bewegen, wordt er een nieuwe cirkel getekend, met een straal half zo groot als van de eerste. Deze meetkundige plaats is de weg die het tweede punt beschrijft terwijl het eerste punt rond de cirkel beweegt. </para>
<para
>Het tekenen van een meetkundige plaats is erg eenvoudig. Klik op de knop Meetkundige plaats in de werkbalk of selecteer <menuchoice
><guimenu
>Objecten</guimenu
> <guisubmenu
>Andere</guisubmenu
> <guimenuitem
>Meetkundige plaats</guimenuitem
></menuchoice
> in de menubalk. Selecteer daarna het punt dat gedwongen op de cirkel ligt als het bewegende punt (als de tekst <guilabel
>Bewegend punt</guilabel
> verschijnt) en de andere als het afhankelijke punt. Hierna zal de meetkundige plaats worden getekend van het afhankelijke punt.. </para>
</section>
</chapter>
<chapter id="scripting">
<title
>Scripts</title>
<para
>In &kig; kan de gebruiker eigen typen maken met behulp van de scripttaal Python. Dit is een zeer geavanceerde functie, en ik ken slechts één ander programma voor interactieve geometrie dat ook zulke functionaliteit heeft: het <acronym
>GNOME</acronym
>-programma &drgeo;. </para>
<para
>Met scripts in Python kunt u in &kig; uw eigen objecten definiëren vanuit bepaalde oorspronkelijke objecten. Als u bijvoorbeeld een wiskundeleraar bent en een leuke manier heeft om een interessant punt of kegelsnede te berekenen, dan kunt u heel eenvoudig in Python-code opschrijven hoe het punt wordt berekend in plaats van te stoeien met ingewikkelde constructies en macro's. &kig; zal het dan voor u demonstreren. </para>
<para
>Stel dat u niet wist van het bestaan van het in &kig; ingebouwde type "Midden van twee punten", en dat u het midden wilde tonen van twee gegeven punten. U zou dan om een script te maken op de knop <guibutton
>Pythonscript</guibutton
> in de werkbalk kunnen klikken of <menuchoice
> <guimenu
>Objecten</guimenu
> <guisubmenu
>Andere</guisubmenu
><guimenuitem
>Pythonscript</guimenuitem
></menuchoice
> selecteren in de menubalk. Er verschijnt dan een assistent die u verder op weg helpt. </para>
<screenshot>
<screeninfo
>De assistent Scriptobject</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="script_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>De assistent Scriptobject</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Het eerste dat u moet doen is het selecteren van de argumenten voor het scriptobject. In ons voorbeeld moeten we de twee punten selecteren waarvan we het midden willen verkrijgen. Selecteer deze twee punten in het hoofdvenster van &kig; en klik op <guibutton
>Volgende</guibutton
> om door te gaan. </para>
<para
>Nu krijgt u een tekstvak te zien waarin u de code voor het scriptobject kunt invoeren. Er staat al wat code in van een sjabloon met wat commentaar. Het is belangrijk dat de code die u invoert goede Python-code is. Als u al bekend bent met Python zult u opmerken dat we hier een functie definiëren genaamd <function
>calc</function
>. Daarom moet u wel enkele eigenschappen van Python kennen voor het definiëren van functies. Elke regel van de functie moet bijvoorbeeld beginnen met een <keysym
>Tab</keysym
>. De eerste regel die niet begint met een <keysym
>Tab</keysym
> geeft het einde van de functiedefinitie aan. </para>
<para
>De Python-functie die we hier willen definiëren heet <quote
>calc</quote
>, en accepteert in ons voorbeeld twee argumenten. Deze argumenten komen overeen met de objecten die u heeft geselecteerd als argumenten in de vorige stap. Hier verschijnen er dus evenveel argumenten als u daar geselecteerd heeft. Ze heten <parameter
>arg1</parameter
> en <parameter
>arg2</parameter
>, maar als u wilt kunt u die namen veranderen in duidelijker namen. </para>
<para
>In deze functie kunt u alle soorten berekeningen uitvoeren die u nodig acht, waarbij u waar nodig beide argumenten kunt gebruiken. Het object dat u wenst moet het eindresultaat zijn. In ons voorbeeld is dat een Point-object (een punt dus). De argumenten zijn ook Point-objecten waarbij we de functie <function
>Point.coordinate()</function
> kunnen gebruiken om de coördinaten van de twee gegeven punten in vast te leggen. </para>
<para
>De berekening die in ons voorbeeld moet worden gedaan is erg eenvoudig, we tellen de coördinaten van beide punten simpelweg bij elkaar op en delen het resultaat door twee. Daarna tekenen we een nieuw punt met de berekende coördinaten. De Python-code luidt als volgt:</para>
<programlisting
>def calc( a, b ):
m = ( a.coordinate() + b.coordinate() ) / 2;
return Point( m )
</programlisting>
<screenshot>
<screeninfo
>De code invoeren</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="script_wizard_entering_code.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>De code invoeren voor het midden van twee punten in de assistent Scriptobject.</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Het nieuwe object zal verschijnen in het &kig;-document als u op de knop <guibutton
>Voltooien</guibutton
> heeft geklikt. Wanneer u één van de punten verplaatst zal het zojuist gemaakte punt met de twee punten meebewegen. Op deze manier kunt u veel ingewikkelder objecten maken, en u wordt aangemoedigd om dat eens te proberen. </para>
<screenshot>
<screeninfo
>Er is een scriptobject geconstrueerd</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructed_script_object.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Het zojuist geconstrueerde scriptobject. </phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Alle objecten van &kig; kunnen worden gebruikt in de Python-code. Zoals we zojuist zagen zijn punten van de "class" Point, waarbij u bijvoorbeeld de "method" <function
>Point.coordinate()</function
> kunt gebruiken. Evenzo kunt u alle soorten objecten maken, niet alleen punten. In Python-scripts in &kig; kunt u nog veel meer "classes" en "methods" gebruiken. Een vollediger naslagwerk op dit gebied kunt u vinden op de <ulink url="http://edu.kde.org/kig/manual/scripting-api/index.html"
>website van Kig</ulink
> .
Noot: class(es) en method(s) zijn termen uit de programmeertaal, in dit geval Python. Om succesvol met zo'n taal aan de gang te gaan moeten dit soort begrippen uiteraard bekend zijn of kunnen worden opgezocht, reden om die niet te vertalen. </para>
</chapter>
<chapter id="kig-features">
<title
>Mogelijkheden van &kig;</title>
<itemizedlist>
<listitem>
<para
>&kig; is een open-sourcetoepassing. Dat betekent dat u vrij bent om het te gebruiken en aan te passen als u dat wilt. Er zijn enkele beperkingen aan het verspreiden van &kig;, hoofdzakelijk dat iedereen dezelfde rechten om &kig; te gebruiken moet hebben, met inbegrip van uw wijzigingen ,als u en ik. </para>
<para
>Vrije software wordt ontwikkeld op een erg open manier, en de ontwikkelaars ontvangen meestal graag ondersteuning van gebruikers. Als u vragen, klachten of wat dan ook over &kig; heeft, u kunt het me altijd laten weten via <email
>toscano.pino@tiscali.it</email
>. </para>
</listitem>
<listitem>
<para
>&kig; is een KPart-toepassing. Dit betekent dat het mogelijk is om het in te bedden in andere &kde;-software. Als u een <literal role="extension"
>.kig</literal
>-bestand in &konqueror; opent kan het direct in het scherm van &konqueror; worden getoond zonder dat u een externe applicatie hoeft te starten. </para>
</listitem>
<listitem>
<para
>Het gebruik van &kig; moet eenvoudig te leren zijn. Het tekenen van objecten is eenvoudig en interactief, waarbij er steeds voorlopige resultaten worden getoond, enzovoort. Verplaatsen, selecteren en het opbouwen van een tekening werken allemaal zoals u zou verwachten, net als het ongedaan maken van bewerkingen. </para>
</listitem>
<listitem>
<para
>&kig; heeft ondersteuning voor macro's op een manier die eenvoudig te leren is. Deze macro's zijn objecten die voor de gebruiker er net zo uitzien als normale objecten. De macro's worden opgeslagen bij afsluiten en ingelezen bij opstarten, ze gaan dus niet verloren bij afsluiten. In het dialoogvenster <guilabel
>Typen beheren</guilabel
> kunt u deze objecten beheren (zie <xref linkend="working-with-types"/>). U kunt deze typen exporteren (opslaan in) naar bestanden, ze uit bestanden importeren (inlezen) en verwijderen. </para>
</listitem>
<listitem>
<para
>&kig; slaat de gegevens op in een duidelijk &XML;-formaat. </para>
</listitem>
<listitem>
<para
>Met &kig; kunt u meetkundige plaatsen tekenen. </para>
</listitem>
<listitem>
<para
>Met &kig; kunt u uw &kig;-bestanden exporteren naar enkele interessante bestandsformaten, zoals afbeeldingen en<application
>XFig</application
>- en <application
>LaTeX</application
>-bestanden, en <acronym
>SVG</acronym
>-vectorafbeeldingen. Dit is erg handig, omdat (tot nu toe) niet alle programma's het &kig;-formaat ondersteunen. </para>
</listitem>
<listitem>
<para
>&kig; heeft een erg flexibel transformatiesysteem. </para>
</listitem>
<listitem>
<para
>Met &kig; willen we graag compatibel zijn met de concurrenten. Daarom worden in &kig; de bestandsformaten van &kgeo; en &kseg; ondersteund, gedeeltelijk die van &drgeo; en &cabri;, en ondersteuning voor andere formaten is ook voorgenomen. </para>
</listitem>
</itemizedlist>
</chapter>
<chapter id="faq">
<title
>Vragen en antwoorden</title>
&reporting.bugs; &updating.documentation; </chapter>
<chapter id="credits">
<title
>Dankbetuigingen en licentie</title>
<para
>&kig; </para>
<para
>&kig; copyright 2002-2004 Dominique Devriese <email
>devriese@kde.org</email
> </para>
<para
>Documentatiecopyright 2002-2004 Dominique Devriese. <email
>devriese@kde.org</email
> </para>
<para
>Documentatiecopyright 2004-2005 Pino Toscano <email
>toscano.pino@tiscali.it</email
>. </para>
<para
>Nagelezen (Engelse tekst) door &Philip.Rodrigues; &Philip.Rodrigues.mail;. </para>
<para
>Jaap<email
>jjh punt woldringh bij planet punt nl</email
></para
>
&underFDL; &underGPL; </chapter>
<appendix id="installation">
<title
>Installatie</title>
<sect1 id="getting-kig">
<title
>Hoe &kig; te verkrijgen</title>
&install.intro.documentation; </sect1>
<sect1 id="compilation">
<title
>Compilatie en installatie</title>
&install.compile.documentation; </sect1>
</appendix>
<appendix id="contributing">
<title
>Meewerken</title>
<section id="kig-is-free">
<title
>Vrije software</title>
<para
>&kig; is <ulink url="http://www.gnu.org/philosophy/philosophy.html#AboutFreeSoftware"
>vrije software</ulink
>. Dat betekent dat de broncode vrij beschikbaar is op het internet, waarbij iedereen die kan gebruiken, bekijken, aanpassen en verspreiden. Ik maak dit programma als hobby, maar ik heb al doende ook veel geleerd over programmeren, C++, &kde;/&Qt;, wiskunde, softwaresamenwerking en open-sourceprojecten. </para>
</section>
<section id="contribute-to-kig">
<title
>Meewerken</title>
<para
>Het doel van dit hoofdstuk is om u (de gebruiker) de rechten die de licentie van &kig; u geeft duidelijk te maken. Net als met alle andere vrije software is het u toegestaan (en aanbevolen) om problemen op te lossen die u opmerkt tijdens het werken met dit programma, om functies toe te voegen die u mist en om uw gewijzigde versie verder te verspreiden en de wijzigingen door te sturen naar mij op<email
>toscano.pino@tiscali.it</email
>., zodat ik deze toe kan voegen aan de volgende versie voor anderen. Ik verklaar hierbij dat ik geen enkel financieel belang heb in dit project. </para>
<para
>Als u niet zeker weet wat uw rechten zijn bij het gebruik van deze software, of die van andere gebruikers wat betreft de veranderingen die u heeft aangebracht &etc;, leest u dan de licentie. U kunt deze vinden in het bestand <filename
>COPYING</filename
> bij de bronbestanden van &kig; of in het tabblad <guilabel
>licentie</guilabel
> in het dialoogvenster <guilabel
>Info over Kig</guilabel
>. </para>
</section>
<section id="howto-contribute">
<title
>Hoe kan ik meehelpen?</title>
<para
>Elke medewerking is welkom. Als u vindt dat de pictogrammen lelijk zijn, dat de handleiding toe is aan vernieuwing, of dat u een geweldige macro heeft ontwikkeld die u wilt delen met de rest van de wereld, twijfel dan niet om het naar me op te sturen. Uw toevoegingen zullen worden verspreid onder de voorwaarden van de &GNU;-<acronym
>GPL</acronym
>; de voorwaarden van deze licentie kunt u vinden in het bestand <filename
>COPYING</filename
> bij de broncodebestanden van &kig; en in het hoofdstuk <link linkend="credits"
>Dankbetuigingen en licentie</link
> in deze handleiding. </para>
</section>
</appendix>
&documentation.index;
</book>
<!--
Local Variables:
mode: xml
End:
-->
|