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
|
<?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 % German "INCLUDE">
<!-- change language only here -->
]>
<book lang="&language;">
<bookinfo>
<title>Das Handbuch zu &kig;</title>
<authorgroup>
<author><firstname>Dominique</firstname> <surname>Devriese</surname> <affiliation> <address><email>[email protected]</email></address>
</affiliation>
</author>
<othercredit role="translator"> <firstname>Sebastian</firstname><surname>Stein</surname><affiliation><address><email>[email protected]</email></address></affiliation><contrib>Deutsche Übersetzung</contrib></othercredit>
</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; ist die &kde; Anwendung für interaktive Geometrie. </para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>KDE-Edu</keyword>
<keyword>Kig</keyword>
<keyword>Interaktive Geometrie</keyword>
<keyword>KGeo</keyword>
<keyword>Cabri</keyword>
<keyword>Dr.Geo</keyword>
<keyword>KSeg</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Einleitung</title>
<para>&kig; ist eine Anwendung für interaktive Geometrie. Es soll hauptsächlich 2 Zwecken dienen: </para>
<itemizedlist>
<listitem><para>Schüler sollen mit Hilfe des Computers mathematische Figuren und Konzepte interaktiv entdecken können. </para></listitem>
<listitem><para>Es soll ein <acronym>WYSIWYG</acronym> Werkzeug zum Zeichnen von mathematischen Figuren und deren Verwendung in anderen Dokumenten sein.</para></listitem>
</itemizedlist>
<para>Probleme mit &kig; können Sie über das interne Fehlerberichtsystem (<menuchoice><guimenu>Hilfe</guimenu> <guimenuitem>Probleme oder Wünsche berichten ...</guimenuitem> </menuchoice>) melden oder direkt an mich <email>[email protected]</email>. </para>
<para>Seit &kig; Makros und geometrische Orte unterstützt, ist es möglich, sehr ausgefeilte Makros zu definieren. Falls Sie ein interessantes Makro erstellt haben, das vielleicht für andere Nutzer ebenfalls von Interesse sein könnte, dann schicken Sie es mir bitte per E-Mail <email>[email protected]</email>. Ich werde es dann ins Programm einfügen (dabei wird es unter &kig;s Lizenz, der <ulink url="http://www.gnu.org/licenses/licenses.html#GPL">GPL</ulink>, veröffentlicht, damit andere Nutzer es frei benutzen und anpassen können). </para>
</chapter>
<chapter id="using-kig-basic">
<title>Einführung</title>
<section id="constructing-objects">
<title>Objekte konstruieren</title>
<section id="constructing-points">
<title>Punkte konstruieren</title>
<para>Punkte können auf verschiedene Weise konstruiert werden:</para>
<itemizedlist>
<listitem>
<para>Wählen Sie dazu <menuchoice><guimenu>Objekte</guimenu> <guisubmenu>Punkte</guisubmenu> <guimenuitem>Punkt</guimenuitem></menuchoice> aus der Menüleiste oder drücken Sie den entsprechenden Knopf in der Werkzeugleiste. Jetzt können Sie einen Punkt durch einen Klick an der gewünschten Position im Fenster konstruieren.</para> <note><para>Genauso können Sie andere Objekte erstellen: Auf den gewünschten Eintrag in der Menüleiste oder den entsprechenden Knopf in der Werkzeugleiste drücken und dann die gewünschten Einträge auswählen, um das Objekt zu konstruieren.</para></note>
</listitem>
<listitem>
<para>Da Sie sehr oft Punkte konstruieren müssen, können Sie dies einfach durch einen Klick mit der <mousebutton>mittleren</mousebutton> Maustaste an einer beliebigen Stelle im Fenster tun, ohne die Menüs oder Knöpfe zu benutzen. </para>
</listitem>
<listitem>
<para>Sie können Punkte konstruieren, während Sie im Hintergrund ein anderes Objekt erstellen. Dadurch werden die Punkte zu dem bearbeiten Objekt hinzugefügt. Mehr dazu finden Sie unter <xref linkend="constructing-other-objects"/>. </para>
</listitem>
</itemizedlist>
<screenshot>
<screeninfo>Ein Punkt wurde konstruiert</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructed_a_point.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase>Ein Punkt wurde konstruiert</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="constructing-other-objects">
<title>Andere Objekte konstruieren</title>
<para>Andere Objekte als Punkte können Sie wie üblich durch die Auswahl des entsprechenden Eintrags im Menü <guimenu>Objekte</guimenu> oder den entsprechenden Knopf in der Werkzeugleiste konstruieren. </para>
<screenshot>
<screeninfo>Konstruieren eines Kreises</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructing_a_circle.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase>Konstruieren eines Kreises</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>So beginnen Sie die Konstruktion des gewählten Objektestyps. Alle diese Objekttypen benötigen Parameter. Wenn Sie zum Beispiel einen Kreis durch Mittelpunkt und Punkt konstruieren wollen, dann müssen Sie zwei Punkte eingeben: den Mittelpunkt und einen Punkt auf dem Kreis. </para>
<para>Diese Parameter sind ebenfalls Objekte, die Sie einfach durch Klicken auswählen können. Bewegen Sie den Mauszeiger über ein Objekt, das Sie für die Konstruktion verwenden wollen, wird eine Vorschau auf das Objekt gezeigt, so dass Sie das Ergebnis sehen können. Für Objekte, die Punkte als Parameter benötigen, können Sie einen neuen Punkt an der aktuellen Position durch einen Klick mit der <mousebutton>mittleren</mousebutton> Maustaste erstellen. </para>
<para>Sie können die Konstruktion eines neuen Objektes jederzeit abbrechen, indem Sie die &Esc;-Taste oder den Knopf <guiicon>Stopp</guiicon> (rotes Achteck mit <quote>X</quote>) in der Werkzeugleiste drücken. </para>
<screenshot>
<screeninfo>Einen Kreise konstruieren</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructing_a_circle_2.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase>Konstruieren eines Kreises</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
</section>
<section id="selecting-objects">
<title>Objekte auswählen</title>
<para>Objekte können auf folgende Weise ausgewählt werden: </para>
<itemizedlist>
<listitem>
<para>Durch einen Klick auf ein Objekt wird dieses ausgewählt und die vorherige Auswahl gelöscht. Möchten Sie mehrere Objekte gleichzeitig wählen, dann müssen Sie während des Klicks die &Ctrl;-Taste gedrückt halten. </para>
</listitem>
<listitem>
<para>Mit einem Klick und anschließendem Ziehen an eine leere Stelle auf der Zeichenfläche können Sie alle Objekte im angezeigten Rechteck auf einmal auswählen. Dadurch wird die vorherige Auswahl gelöscht. Mit gedrückter &Ctrl;-Taste jedoch werden die neuen Objekte zur vorherigen Auswahl hinzugefügt. </para>
</listitem>
</itemizedlist>
<para>Befinden sich mehrere Objekte unter dem Mauszeiger, können Sie angeben, welches Objekt ausgewählt oder der Auswahl hinzugefügt werden soll. Klicken Sie mir der <mousebutton>linken </mousebutton> Maustaste und halten dabei die &Umschalt;taste gedrückt, um ein Kontextmenü mit allen Objekten unter dem Mauszeiger zu sehen. Dann können Sie das gewünschte Objekt wählen. Wie oben beschrieben, können Sie mit der &Shift;taste das Verhalten der Auswahl beeinflussen. </para>
<screenshot>
<screeninfo>Objekte auswählen</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="selecting_objects.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Objekte auswählen</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="moving-objects">
<title>Objekte verschieben</title>
<para>Um Objekte verschieben zu können, müssen Sie sie zuerst <link linkend="selecting-objects">auswählen</link>. </para>
<para>Um die ausgewählten Objekte zu verschieben, halten Sie die <mousebutton>linke</mousebutton> Maustaste auf einem gewählten Objekt gedrückt. Jetzt können Sie durch Ziehen mit der Maus die Objekte verschieben. Sind Sie damit fertig, dann lassen Sie die linke Maustaste einfach wieder los. </para>
<note><para>Für einige Objekte (besonders wenn sie durch komplizierte geometrische Orte definiert sind) kann das Verschieben von Objekten auf älterer Hardware sehr langsam sein. Das lässt sich leider nicht verhindern, da im Hintergrund Berechnungen stattfinden müssen. </para></note> <note><para>Klicken Sie mit der <mousebutton>rechten</mousebutton> Maustaste auf ein ausgewähltes Objekt und wählen dann <guimenuitem>Verschieben</guimenuitem>, dann können Sie das Objekt durch Bewegung der Maus verschieben. Ist die gewünschte Position für das Objekt erreicht, dann können Sie das Verschieben durch einen Klick mit der <mousebutton>linken</mousebutton> Maustaste beenden.</para></note>
</section>
<section id="deleting-objects">
<title>Objekte löschen</title>
<para>Objekte müssen zuerst <link linkend="selecting-objects">ausgewählt</link> werden und können dann auf verschiedene Weise gelöscht werden: <itemizedlist>
<listitem>
<para>durch Drücken der Taste <keycap>Entfernen</keycap> </para>
</listitem>
<listitem>
<para>durch Drücken des Knopfes <guiicon>Löschen</guiicon> in der Werkzeugleiste </para>
</listitem>
<listitem>
<para>durch Klicken mit der <mousebutton>rechten</mousebutton> Maustaste und der Auswahl von <guimenuitem>Löschen</guimenuitem> im <link linkend="objects-context-menus">Kontextmenü</link>. </para>
</listitem>
</itemizedlist>
</para>
</section>
<section id="showing-hiding-objects">
<title>Objekte zeigen und ausblenden</title>
<para>In &kig; können Objekte ausgeblendet werden. Dazu wählen Sie das Objekt aus, klicken mit der <mousebutton>rechten</mousebutton> Maustaste darauf und wählen aus dem <link linkend="objects-context-menus">Kontextmenü</link> den Eintrag <guimenuitem>Ausblenden</guimenuitem>. </para>
<para>Um ein Objekt wieder anzuzeigen, wählen Sie <menuchoice><guimenu>Bearbeiten</guimenu> <guimenuitem>Alle zeigen</guimenuitem></menuchoice>. Es werden alle momentan ausgeblendeten Objekte wieder angezeigt. </para>
<section id="night-vision">
<title>Nachtsicht</title>
<para>Nachtsicht ist eine besondere Art, um ausgeblendete Objekte zu bearbeiten. Wenn Sie Objekte bewegen oder ändern möchten, ohne alle ausgeblendeten Objekte wieder anzuzeigen, ist der Nachtsichtmodus sehr hilfreich. </para>
<para>In diesem Modus werden die ausgeblendeten Objekte wie sichtbare Objekte angezeigt, so dass Sie sie wie sonst auch bearbeiten können.Im Nachtsichtmodus werden die ausgeblendeten Objekte in grauer Farbe angezeigt. </para>
<para>Um den Nachtsichtmodus ein- und auszuschalten, wählen Sie im Menü <menuchoice><guimenu>Einstellungen</guimenu><guimenuitem>Nachtsichtmodus</guimenuitem></menuchoice>. </para>
</section>
</section>
<section id="undo-redo">
<title>Rückgängig/Wiederherstellen</title>
<para>In &kig; können Sie fast jede Änderungen rückgängig machen. Einfach dazu die entsprechenden <guiicon>Rückgängig</guiicon>/<guiicon>Wiederherstellen</guiicon>-Knöpfe aus der Werkzeugleiste drücken oder die entsprechenden Tastenkürzel aufrufen. </para>
</section>
<section id="full-screen-mode">
<title>Vollbildmodus</title>
<para>&kig; verfügt über einen Vollbildmodus. Um diesen zu nutzen, wählen Sie <menuchoice><guimenu>Einstellungen</guimenu><guimenuitem>Ganzer Bildschirm</guimenuitem></menuchoice> oder den entsprechenden Knopf aus der Werkzeugleiste. </para>
<para>Um den Vollbildmodus zu verlassen, klicken Sie mit der <mousebutton>rechten</mousebutton> Maustaste auf die Zeichenfläche auf eine Stelle ohne Objekte und wählen <guimenuitem>Vollbildmodus beenden</guimenuitem> oder drücken Sie die &Esc;-Taste. </para>
</section>
</chapter>
<chapter id="kig-object-types">
<title>&kig; Objekt Typen</title>
<para>&kig; unterstützt eine Vielzahl von Objekten. Beachten Sie, dass nicht alle Objekte in der Werkzeugleiste verfügbar sind, einige Objekte können Sie nur über die Menüleiste im Menü <guimenu>Objekte</guimenu> konstruieren. Natürlich können Sie wie überall in &kde; die Symbole in der Werkzeugleiste anpassen. Dies erreichen Sie unter <menuchoice><guimenu>Einstellungen</guimenu> <guimenuitem>Werkzeugleisten einrichten ...</guimenuitem></menuchoice>. </para>
</chapter>
<chapter id="using-advanced">
<title>Erweiterte Anwendung</title>
<section id="objects-context-menus">
<title>Kontextmenüs</title>
<para>&kig; bietet Kontextmenüs für die Objekte. Dazu genügt ein Klick mit der <mousebutton>rechten</mousebutton> Maustaste auf das Objekt und das Kontextmenü erscheint. Dieses Kontextmenü hat viele Optionen: andere Objekte konstruieren, Farben setzen, Ausblenden, Verschieben oder Löschen von Objekten. Einige Objekte haben besondere Optionen (z. B. können Sie bestimmte Punkte einer Linie zuordnen). Diese Optionen sollten selbsterklärend sein. </para>
</section>
<section id="document-context-menus">
<title>Kontextmenüs für Dokumente</title>
<para>Ein Klick mit der <mousebutton>rechten</mousebutton> Maustaste auf ein Dokument (nicht auf ein Objekt) zeigt ein Kontextmenü, mit dem Sie neue Objekte konstruieren, das Koordinatensystem ändern, Objekte wieder anzeigen und auch die Vergrößerung einstellen können. </para>
</section>
<section id="defining-macros">
<title>Makros definieren</title>
<para>Ein weiteres Merkmal von &kig; ist die Unterstützung von Makros. Damit können Sie neue Objekt als definieren, die aus anderen Objekte zusammensetzt sind. </para>
<para>Ein Beispiel: Nehmen wir an, Sie wollen ein Makro zur Konstruktion eines Kreises durch drei Punkte erstellen. Dazu konstruieren Sie drei Punkte und die Linien dazwischen. Auf diesen Linien zeichnen Sie in der Mitte die Senkrechten, deren Schnittpunkt den Mittelpunkt für den Kreis durch die drei Ausgangspunkte bildet. Jetzt können Sie den vorhandenen Befehl <quote>Kreis durch Mittelpunkt & Punkt</quote> (mit einem der drei Punkte als den Parameter für diesen Befehl) verwenden. Das folgende Bild veranschaulicht die Konstruktion: </para>
<screenshot>
<screeninfo>Ein Test Makro</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="test_run_macro.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Ein Test Makro</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>Jetzt muss das Makro definiert werden. Dazu wählen Sie <guimenuitem>Neues Makro ...</guimenuitem> aus dem Menü <guimenu>Typen</guimenu> aus oder klicken auf den entsprechenden Knopf in der Werkzeugleiste. Ein Assistent erscheint und fordert zum Markieren der gegebenen Objekte auf. In unserem Beispiel sind das die drei Punkte. Wählen Sie jetzt die drei Punkte aus (durch Klicken, ein weiterer Klick hebt die Markierung für das Objekt wieder auf) und bestätigen dies mit dem Knopf <guibutton>Weiter</guibutton>. Abschließend wählen Sie das letzte Objekt (in unserem Beispiel nur den Kreis) aus. </para>
<screenshot>
<screeninfo>Der Makro Assistent</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="macro_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Der Makro Assistent</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>Nachdem die vorherigen Schritte erledigt wurden, drücken Sie den Knopf <guibutton>Weiter</guibutton>. Nun geben Sie einen Namen und optional eine Beschreibung für den neuen Typ ein und beenden die Eingabe mit <guibutton>Abschließen</guibutton>. Das Makro ist jetzt vollständig definiert. </para>
<para>Um das Makro zu benutzen, wählen Sie es aus der Werkzeugleiste direkt aus oder rufen es im Menü <guimenu>Objekte</guimenu> auf. Ein Makro zu konstruieren, funktioniert genauso wie die Konstruktion eines beliebigen Objekts. </para>
<screenshot>
<screeninfo>Das neue Makro benutzen</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="macros_at_work.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Das neue Makro benutzen</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="working-with-types">
<title>Arbeiten mit Makros</title>
<para>Wie im vorherigen Kapitel gezeigt wurde, können Sie in &kig; eigene Objekte definieren. &kig; stellt weiterhin sicher, dass bei jedem Beenden die angelegten Objekte gespeichert werden und beim nächsten Start wieder zur Verfügung stehen. Ein manuelles Speichern oder Laden der Makrodefinitionen ist nicht notwendig. Sie können Makros aber auch bearbeiten. Mit <guimenuitem>Typen verwalten</guimenuitem> im Menü <guimenu>Typen</guimenu> öffnet sich ein Fenster zur Verwaltung der Makros. Sie können ungenutzte Makros löschen, Makros in Dateien speichern und sogar Makros aus anderen Dateien laden. </para>
<screenshot>
<screeninfo>Dialog Typen verwalten</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="edit_types_dialog.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Der Dialog Typen verwalten</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="text-labels">
<title>Textfelder</title>
<para>In &kig; können Sie Textfelder einer Konstruktion hinzugefügen. Das ist sehr nützlich um Namen, Erklärungen oder anderen Text in Konstruktionen anzuzeigen. &kig; kann weiterhin variable Informationen von Objekten (<quote>Eigenschaften</quote>) anzeigen. </para>
<para>Um ein Textfeld zu konstruieren, klicken Sie einfach auf den Knopf <guibutton>Textfeld</guibutton> in der Werkzeugleiste oder wählen Sie in der Menüleiste <menuchoice><guimenu>Objekte</guimenu><guisubmenu>Sonstige</guisubmenu> <guimenuitem>Textfeld</guimenuitem></menuchoice>. </para>
<para>Jetzt müssen Sie eine Position für das Textfeld festlegen. Sie können entweder eine beliebige Position auf der Zeichenfläche auswählen oder das Textfeld an ein anderes Objekt <quote>anhängen</quote>. </para>
<screenshot>
<screeninfo>Ein Textfeld an einen Kreis hängen ...</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="text_label_attaching.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Ein Textfeld an einen Kreis hängen ...</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>Nach der Auswahl der Position des Textfeldes wird der Dialog Konstruktionsmarke angezeigt. Hier geben Sie den Text für das neue Textfeld ein und bestätigen mit <guibutton>Abschließen</guibutton>. Das Textfeld sollte jetzt in der Zeichnung angezeigt werden. </para>
<screenshot>
<screeninfo>Das Textfeldfenster</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="text_label_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Das Textfeldfenster</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>Das vorherige Beispiel war einfach, es wurde nur Text angezeigt. Sie können aber auch veränderliche Informationen über die Objekte im Textfeld anzeigen (z. B. können Sie ein Textfeld mit dem Inhalt <quote>Diese Strecke ist <token>%1</token> Einheiten lang ...</quote> anzeigen, wobei <token>%1</token> automatisch mit der Länge des entsprechenden Strecke ersetzt wird). </para>
<para>Dazu müssen Sie den Text mit Platzhaltern (<token>%1</token>, <token>%2</token> &etc;) eingeben. Danach bestätigen Sie mit dem Knopf <guibutton>Weiter</guibutton>. Wollen Sie den Text oder die Platzhalter später noch ändern, können Sie mit dem Knopf <guibutton>Zurück</guibutton> wieder zur Bearbeitung gehen. </para>
<para>Der Assistent zeigt nun den eingegebenen Text mit den Platzhaltern in der Form <guilabel>Argument 1</guilabel>. Um festzulegen, was für ein bestimmtes Argument angezeigt werden soll, müssen Sie zuerst das Argument im Text anklicken. Jetzt klicken Sie auf das Objekt, dessen Eigenschaft Sie anzeigen lassen wollen und wählen die gewünschte Eigenschaft angezeigten im Aufklappfenster. In unserem Beispiel oben klicken Sie auf <guilabel>Argument 1</guilabel>, in der Arbeitsfläche von &kig; auf die entsprechende Strecke und wählen die Eigenschaft <guilabel>Länge</guilabel> aus. Danach können Sie weitere variable Teile des Textes eingeben oder andere Eigenschaften für einen variablen Teil auswählen. Haben Sie alle Eingaben fertiggestellt, dann beenden Sie die Konstruktion des Textfeldes mit dem Knopf <guibutton>Abschließen</guibutton>. </para>
<screenshot>
<screeninfo>Eine Eigenschaft für den variablen Teil auswählen</screeninfo>
<mediaobject>
<imageobject>
<imagedata
fileref="text_label_wizard__select_property.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase>Eine Eigenschaft für den variablen Teil auswählen</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="locuses">
<title>Geometrische Orte</title>
<para>&kig; unterstützt geometrische Orte. Ein geometrische Ort ist in der Mathematik definiert als Menge alle Punkte oder Linien, die bestimmte Bedingungen erfüllen, wie zum Beispiel <quote>der geometrische Ort von Punkten mit gleichem Abstand zu einem vorgegebenen Punkt ist ein Kreis</quote>. Hier ein Beispiel für die Anwendung geometrischer Orte in &kig;: </para>
<para>Betrachten Sie folgende geometrische Konstruktion: Sie zeichnen einen Kreis mit einem Punkt auf dessen Rand. Den Punkt konstruieren Sie, indem Sie die Maus auf den Kreisrand bewegen und die <mousebutton>mittlere</mousebutton> Maustaste drücken. Versuchen Sie jetzt den neuen Punkt zu bewegen, dann werden Sie feststellen, dass Sie ihn nur auf dem Kreis bewegen können. Jetzt konstruieren Sie eine Strecke zwischen diesem Punkt und dem Mittelpunkt des Kreises. Anschließend konstruieren Sie den Mittelpunkt der Strecke. </para>
<screenshot>
<screeninfo>Eine einfache Konstruktion mittels geometrischem Ort</screeninfo>
<mediaobject>
<imageobject>
<imagedata
fileref="simple_locus_construction.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase>Eine einfache Konstruktion mittels geometrischem Ort</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>Bewegen Sie nun diesen auf den Kreis beschränkten Punkt, dann bewegt sich die Strecke und ihr Mittelpunkt ebenfalls mit. Wenn Sie jetzt einen Stift auf den Mittelpunkt der Strecke halten und den Punkt auf dem Kreis einmal herum bewegen, dann wird ein neuer Kreis mit der halben Größe gezeichnet. Der Weg, den der Mittelpunkt bei der Bewegung des ersten Punktes auf dem Kreis zurücklegt, ist der geometrische Ort. </para>
<para>Es ist sehr einfach, einen geometrischen Ort zu konstruieren. Dazu klicken Sie auf den Knopf <guiicon>geometrischer Ort</guiicon> in der Werkzeugleiste oder wählen im Menü <menuchoice><guimenu>Objekte</guimenu> <guisubmenu>Sonstige</guisubmenu> <guimenuitem>geometrischer Ort</guimenuitem></menuchoice> aus. Jetzt wählen Sie zuerst den abhängigen Punkt (der Text <guilabel>Bewegender Punkt</guilabel> erscheint) und dann den sich bewegenden Punkt aus. Der geometrische Ort des abhängigen Punktes wird dann gezeichnet. </para>
</section>
</chapter>
<chapter id="scripting">
<title>Skripte</title>
<para>&kig; bietet die Möglichkeit, eigene Objekte in der Skript-Sprache Python zu definieren. Das ist eine sehr fortgeschrittene Funktion und ich kenne nur noch ein anderes Programm für interaktive Geometrie mit dieser Funktion (das <acronym>GNOME</acronym>-Programm &drgeo;). </para>
<para>Mit Python-Skripten in &kig; können Sie eigene Objekte aus vorhandenen Objekten erstellen. So können Sie z. B. einen bestimmten Punkt eines Kegels berechnen wollen. Anstatt nun mit komplexen Konstruktionen und Makros zu hantieren, können Sie die Rechenvorschrift einfach in der Sprache Python aufschreiben und &kig; wird den Punkt entsprechend darstellen. </para>
<para>Nehmen wir an, Ihnen ist das in &kig; vorhandene Objekt <quote>Mittelpunkt</quote> nicht bekannt und Sie wollen den Mittelpunkt zwischen zwei vorgegebenen Punkten konstruieren. Dazu klicken Sie auf den Knopf <guibutton>Python Skript</guibutton> in der Werkzeugleiste oder wählen <menuchoice><guimenu>Objekte</guimenu><guisubmenu>Sonstige</guisubmenu> <guimenuitem>Python Skript</guimenuitem></menuchoice> in der Menüleiste. Es wird nun ein Assistent angezeigt, der Sie durch den Prozess begleitet. </para>
<screenshot>
<screeninfo>Der Skriptobjekt Assistent</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="script_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Der Skriptobjekt Assistent</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>Zuerst müssen Sie die Argumente des Skriptobjektes wählen. In unserem Beispiel sind das die zwei Punkte, zwischen denen wir den Mittelpunkt anzeigen wollen. Diese wählen Sie im Hauptfenster von &kig; aus und machen weiter mit dem einem Klick auf den Knopf <guibutton>Weiter</guibutton>. </para>
<para>Jetzt wird ein Texteingabefeld angezeigt, in den Sie den Quelltext für das Skriptobjekt eingeben können. Ein Quelltextgerüst und einige Kommentare sind bereits vorhanden. Es ist wichtig sicher zu stellen, dass Sie korrekten Python-Quelltext eingeben. Nutzer, die mit Python vertraut sind, werden bemerken, dass wir eine Funktion <function>calc</function> definieren. Halten Sie sich an die Python-Regeln zur Definition einer Funktion. So muss jede Zeile der Funktion mit einem <keysym>Tabulator</keysym> eingerückt werden. Die erste Zeile ohne <keysym>Tabulator</keysym> am Zeilenanfang beendet die Funktionsdefinition. </para>
<para>Die Python-Funktion, die wir definieren wollen, heißt <quote>calc</quote> und verarbeitet in unserem Beispiel zwei Argumente. Das sind die im vorherigen Schritt ausgewählten Objekte. Die Anzahl der Argumente muss immer mit der Anzahl der gewählten Objekte übereinstimmen. Die Argumente heißen <parameter>arg1</parameter> und <parameter>arg2</parameter>, aber Sie können natürlich die Namen ändern. </para>
<para>In der Funktion können Sie alle Arten von Berechnungen mit den Argumenten durchführen, die nötig sind. Sie müssen das Objekt zurückgeben, dass Sie definieren wollen. In diesem Fall ist es ein <classname>Point</classname>-Objekt. Die beiden Argumente sind ebenfalls <classname>Point</classname>-Objekte und Sie können die Funktion <function>Point.coordinate()</function> nutzen, um die Koordinaten der angegebenen Punkte zu verarbeiten. </para>
<para>In diesem Beispiel ist die notwendige Berechnung sehr einfach. Addieren Sie die beiden Koordinatenpaare und teilen Sie das Ergebnis durch 2. Mit diesen neuen Koordinaten erstellen Sie ein neues Point-Objekt. Der dazu notwendige Python-Quelltext lautet:</para>
<programlisting>def calc( a, b ):
m = ( a.coordinate() + b.coordinate() ) / 2;
return Point( m )
</programlisting>
<screenshot>
<screeninfo>Quelltext eingeben</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="script_wizard_entering_code.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Quelltext für den Mittelpunkt im Skriptobjekt Assistent eingeben</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>Drücken Sie nun den Knopf <guibutton>Abschließen</guibutton>, wird das neue Objekt im Arbeitsbereich von &kig; angezeigt. Bewegen Sie einen der Punkte, dann bewegt sich der neu erstellte Punkt entsprechend mit. Sie können natürlich weitaus komplexere Objekte erstellen, probieren Sie es einfach aus. </para>
<screenshot>
<screeninfo>Ein Skriptobjekt erstellt</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructed_script_object.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Das neu erstellte Skriptobjekt </phrase>
</textobject>
</mediaobject>
</screenshot>
<para>Alle &kig; Objekte können im Python-Quelltext benutzt werden. Wie weiter oben gezeigt wurde, gehören Punkte zur <classname>Point</classname>-Klasse und Sie können z. B. die Koordinaten über die Funktion <function>Point.coordinate()</function> ermitteln. Sie können alle Arten von Objekten zurückgeben, nicht nur <classname>Point</classname>-Objekte. Viele weitere Klassen und Funktionen stehen in &kig; im Python-Quelltext zur Verfügung, eine vollständigere Referenz finden Sie <ulink url="http://edu.kde.org/kig/manual/scripting-api/index.html">hier</ulink>. </para>
</chapter>
<chapter id="kig-features">
<title>&kig;s Merkmale</title>
<itemizedlist>
<listitem>
<para>&kig; ist eine OpenSource Anwendung. Das bedeutet, Sie dürfen es frei verändern und nutzen, wie Sie wollen. Die Weitergabe von &kig; unterliegt einigen Einschränkungen, hauptsächlich dass jeder die gleichen Rechte wie Sie an &kig;s Benutzung hat, dazu gehören auch die eigenen Änderungen. </para>
<para>Freie Software wird in einem sehr offenem Umfeld entwickelt und die Entwickler reagieren meist sehr schnell auf die Rückmeldung durch die Nutzer. Wenn Sie also Fragen, Probleme oder sonstige Hinweise zu &kig; haben, dann informieren Sie mich <email>[email protected]</email>. </para>
</listitem>
<listitem>
<para>&kig; ist eine KPart-Anwendung. Das bedeutet, Sie können sie in andere &kde; Programme einbetten. Öffnen Sie z. B. eine <literal role="extension">.kig</literal>-Datei in &konqueror;, dann wird sie direkt angezeigt, ohne dass eine externe Anwendung gestartet werden muss. </para>
</listitem>
<listitem>
<para>Arbeiten mit &kig; ist unkompliziert. Das Konstruieren von Objekten ist einfach und interaktiv, das vorläufige Ergebnis wird als Vorschau angezeigt. Verschieben, Auswählen und Konstruieren funktioniert genau so, wie Sie es erwarten. Die Möglichkeiten um Eingaben rückgängig zu machen, sind ebenfalls sehr intuitiv. </para>
</listitem>
<listitem>
<para>&kig; unterstützt die Erstellung von Makros auf eine sehr unkomplizierte Art und Weise. Diese Objekte stehen dem Nutzer wie normale Objekte zur Verfügung. Sie werden beim Beenden gespeichert und beim Start geladen, so dass sie beim Beenden des Programms nicht verloren gehen. Diese Objekte können Sie im Dialog <link linkend="working-with-types">Typen verwalten</link> bearbeiten. Sie können Objekte in Dateien exportieren, aus Dateien importieren, bearbeiten und löschen. </para>
</listitem>
<listitem>
<para>&kig; speichert seine Daten in einem dokumentierten &XML;-Format. </para>
</listitem>
<listitem>
<para>&kig; unterstützt die Konstruktion von geometrischen Orten. </para>
</listitem>
<listitem>
<para>&kig; erlaubt den Export einer &kig;-Datei in einige interessante Formate wie Bilder, <application>XFig-</application> und <application>LaTeX-</application> Dateien und das <acronym>SVG</acronym>-Vektorformat. Das ist sehr nützlich, da noch nicht alle Programme das Dateiformat von &kig; unterstützten. </para>
</listitem>
<listitem>
<para>&kig; verfügt über ein sehr flexibles Transformationssystem. </para>
</listitem>
<listitem>
<para>&kig; versucht kompatibel mit seinen Mitbewerbern zu sein. Deshalb unterstützt es das Dateiformat von &kgeo; und &kseg; und teilweise das Dateiformat von &drgeo; und &cabri;. Unterstützung für weitere Dateiformate ist in Arbeit. </para>
</listitem>
</itemizedlist>
</chapter>
<chapter id="faq">
<title>Fragen und Antworten</title>
&reporting.bugs; &updating.documentation; </chapter>
<chapter id="credits">
<title>Danksagungen und Lizenz</title>
<para>&kig; </para>
<para>&kig; Copyright 2002-2004 Dominique Devriese <email>[email protected]</email> </para>
<para>Copyright der Dokumentation 2002-2004 Dominique Devriese <email>[email protected]</email>. </para>
<para>Copyright der Dokumentation 2002-2005 Pino Toscano <email>[email protected]</email>. </para>
<para>Korrektur gelesen von &Philip.Rodrigues; &Philip.Rodrigues.mail;. </para>
<para>Übersetzung Sebastian Stein<email>[email protected]</email></para>
&underFDL; &underGPL; </chapter>
<appendix id="installation">
<title>Installation</title>
<sect1 id="getting-kig">
<title>Bezugsquellen von &kig;</title>
&install.intro.documentation; </sect1>
<sect1 id="compilation">
<title>Kompilierung und Installation</title>
&install.compile.documentation; </sect1>
</appendix>
<appendix id="contributing">
<title>Unterstützung</title>
<section id="kig-is-free">
<title>Freie Software</title>
<para>&kig; ist <ulink url="http://www.gnu.org/philosophy/philosophy.html#AboutFreeSoftware"> Freie Software</ulink>. Das bedeutet, der Quelltext ist frei verfügbar im Internet und jeder kann ihn nutzen, ändern und verteilen. Für mich ist es ein Hobby-Projekt und ich konnte viel über Programmierung, C++, &kde;/&Qt;, Mathematik, verteilte Softwareentwicklung und Open Source Projekte lernen. </para>
</section>
<section id="contribute-to-kig">
<title>Unterstützung</title>
<para>Das Ziel dieses Kapitels ist es, den Benutzer (Sie) auf die Rechte aufmerksam zu machen, die Inhen die &kig;-Lizenz gewährt. Wie bei jeglicher freier Software dürfen (und sollen) Sie Probleme, die Sie während der Nutzung entdecken, beheben, neue Funktionen hinzufügen und das Programm weiterverteilen. Schicken Sie die Änderungen an mich <email>[email protected]</email>, damit ich sie in der nächsten Version zum Nutzen aller mit veröffentlichen kann. Beachten Sie, dass ich selbst keine finanziellen Interessen an diesem Projekt habe. </para>
<para>Sollten Sie Zweifel über das eigene Recht an dieser Software oder dem Recht anderer an den eigenen Veränderungen an diesem Programm haben, dann lesen Sie die Lizenz. Sie finden die Lizenz in der <filename>COPYING</filename> Datei, im &kig; Quelltextbaum oder in der <guilabel>Lizenzkartei</guilabel> im Dialog <guilabel>Über &kig;</guilabel>. </para>
</section>
<section id="howto-contribute">
<title>Wie kann ich Mithelfen?</title>
<para>Jegliche Unterstützung ist willkommen! Finden Sie die Icons schlecht, braucht das Handbuch eine Überarbeitung oder haben Sie dieses tolle Makro, das Sie mit der ganzen Welt teilen möchte, dann zögern Sie nicht, dies an mich zu schicken. Dabei ist zu beachten, dass der Beitrag ebenfalls unter der &GNU; <acronym>GPL</acronym>; verwendet wird, deren Text Sie in der Lizenz Datei <filename>COPYING</filename> im &kig; Quelltextbaum und unter <link linkend="credits">Danksagungen und Lizenz</link> in diesem Handbuch finden. </para>
</section>
</appendix>
&documentation.index;
</book>
<!--
Local Variables:
mode: xml
End:
-->
|