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
|
<?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 % Brazilian-Portuguese "INCLUDE">
<!-- change language only here -->
]
>
<book lang="&language;">
<bookinfo>
<title
>O Manual do &kig;</title>
<authorgroup>
<author
><firstname
>Dominique</firstname
> <surname
>Devriese</surname
> <affiliation
> <address
><email
>[email protected]</email
></address>
</affiliation>
</author>
<othercredit role="translator"
><firstname
>Marcus</firstname
><surname
>Gama</surname
><affiliation
><address
><email
>[email protected]</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
>
</authorgroup>
<copyright>
<year
>2002</year
><year
>2003</year
><year
>2004</year
> <holder
>Dominique Devriese</holder>
</copyright>
<legalnotice
>&FDLNotice;</legalnotice>
<date
>2004-06-29</date
> <releaseinfo
>0.9.0</releaseinfo>
<abstract>
<para
>O &kig; é um aplicativo do &kde; para Geometria Interativa. </para>
</abstract>
<keywordset>
<keyword
>KDE</keyword
> <keyword
>KDE-Edu</keyword>
<keyword
>Kig</keyword
> <keyword
>Geometria Interativa</keyword>
<keyword
>KGeo</keyword
> <keyword
>Cabri</keyword>
<keyword
>Dr.Geo</keyword
> <keyword
>KSeg</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title
>Introdução</title>
<para
>O &kig; é um aplicativo para Geometria Interativa. Ele pretende cumprir dois objetivos: </para>
<itemizedlist>
<listitem
><para
>Permitir aos estudantes explorarem figuras e conceitos matemáticos, usando o computador. </para
></listitem>
<listitem
><para
>Servir como uma ferramenta <acronym
>WYSIWYG</acronym
> para desenhar figuras matemáticas e incluí-las em outros documentos.</para
></listitem>
</itemizedlist>
<para
>Você poderá comunicar problemas no &kig;, usando a ferramenta interna de relatórios de erros (<menuchoice
><guimenu
>Ajuda</guimenu
><guimenuitem
>Comunicar um Erro...</guimenuitem
></menuchoice
>, ou poderá contactar o autor em <email
>[email protected]</email
>. </para>
<para
>Uma vez que o &kig; suporta macros e 'locuses', ele permite a definição de algumas macros mais avançadas. Se você criou uma macro interessante que você acha que poderá ser útil para outras pessoas, você poderá enviá-la para o autor em <email
>[email protected]</email
>, de modo que possa ser incluída na distribuição (se o fizer, ela será licenciada segundo os termos da licença do &kig;, a <ulink url="http://www.gnu.org/licenses/licenses.html#GPL"
>GPL</ulink
>, de modo que as outras pessoas possam usá-la livremente e adaptá-la). </para>
</chapter>
<chapter id="using-kig-basic">
<title
>Uso básico</title>
<section id="constructing-objects">
<title
>Construindo Objetos</title>
<section id="constructing-points">
<title
>Construindo pontos</title>
<para
>Você poderá construir pontos de várias formas:</para>
<itemizedlist>
<listitem>
<para
>Selecione <menuchoice
><guimenu
>Objetos</guimenu
> <guisubmenu
>Pontos</guisubmenu
><guimenuitem
>Ponto</guimenuitem
></menuchoice
> na barra de menu ou clique no botão apropriado da barra de ferramentas. Você poderá então construir um ponto clicando na posição desejada da janela.</para
> <note
><para
>Atualmente, isto funciona da mesma forma para construir também outros objetos: clique no item desejado do menu ou da barra de ferramentas e selecione os objetos necessários para construir o objeto.</para
></note>
</listitem>
<listitem>
<para
>Uma vez que você precisa normalmente construir os pontos, basta clicar em algum ponto da tela com o &MMB; de modo a construir um ponto para você, sem ter que ir a um menu ou a um botão. </para>
</listitem>
<listitem>
<para
>Você poderá criar pontos enquanto está criando outros objetos em segundo plano, selecionando-os opcionalmente no objeto que está criando. Para mais informações, veja em <xref linkend="constructing-other-objects"/>. </para>
</listitem>
</itemizedlist>
<screenshot>
<screeninfo
>Foi criado um ponto</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructed_a_point.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Foi criado um ponto</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="constructing-other-objects">
<title
>Construindo Outros Objetos</title>
<para
>Criar outros objetos que não sejam pontos é feito normalmente selecionando o item apropriado do menu <guimenu
>Objetos</guimenu
>, ou clicando num dos botões da barra de ferramentas. </para>
<screenshot>
<screeninfo
>Construindo uma circunferência</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructing_a_circle.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Construindo uma circunferência</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Isto irá iniciar a construção do tipo de objeto escolhido. Todos estes tipos necessitam de argumentos. Por exemplo, se você selecionou uma circunferência através do centro e de um ponto, você terá que indicar dois pontos: um para o centro e outro para um ponto da circunferência. </para>
<para
>Estes argumentos são também objetos e poderão ser selecionados, simplesmente clicando nos mesmos. Quando você mover um objeto que possa ser usado para construir o objeto, será mostrada uma imagem preliminar do que o objeto se parecerá. Para os objetos que necessitem de pontos como argumentos, você poderá criar um novo ponto na posição atual do cursor e selecioná-lo com o &LMB;. </para>
<para
>Você poderá sempre cancelar a criação do novo objeto com a tecla &Esc; ou clicando no botão <guiicon
>Parar</guiicon
> (o octógono vermelho com um <quote
>X</quote
>) na barra de ferramentas. </para>
<screenshot>
<screeninfo
>Construindo uma circunferência.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructing_a_circle_2.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Construindo uma circunferência</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
</section>
<section id="selecting-objects">
<title
>Selecionando Objetos</title>
<para
>A seleção dos objetos poderá ser feita de duas formas: </para>
<itemizedlist>
<listitem>
<para
>Clicando simplesmente num objeto, fará com que esse objeto fique selecionado, retirando a seleção de outros objetos que estivessem previamente selecionados. Se você não quiser esse comportamento, mantenha pressionada a tecla &Ctrl; enquanto clica num objeto. </para>
</listitem>
<listitem>
<para
>Ao clicar e arrastar para um local vazio da tela, você poderá selecionar todos os objetos dentro do retângulo que é criado. Esta ação irá limpar a seleção atual. Como no caso anterior, se mantiver pressionada a tecla &Ctrl;, irá evitar esse comportamento. </para>
</listitem>
</itemizedlist>
<screenshot>
<screeninfo
>Selecionando objetos</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="selecting_objects.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Selecionando objetos</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="moving-objects">
<title
>Movendo Objetos</title>
<para
>Para mover os objetos, você precisa primeiro de os <link linkend="selecting-objects"
>selecionar</link
>. </para>
<para
>Quando os objetos que você deseja mover estiverem selecionados, você poderá começar a movê-los clicando no &LMB; e arrastando qualquer um deles. Quando terminar, basta soltar o &LMB;. </para>
<note
><para
>Para alguns tipos de objetos ('locuses' mais complexos), a movimentação dos objetos poderá ser lenta nos sistemas mais antigos). Isto é ruim mas é inevitável, devido os cálculos envolvidos. </para
></note
> <note
><para
>Se você clicar com o &RMB; num dos objetos selecionados e optar por <guimenuitem
>Mover</guimenuitem
>, o movimento do mouse irá mudar a posição do objeto. Quando o objeto estiver na posição desejada, outro clique do &LMB; irá parar o movimento. </para
></note>
</section>
<section id="deleting-objects">
<title
>Apagando Objetos</title>
<para
>A remoção de objetos é feita, <link linkend="selecting-objects"
>selecionando-os</link
> em primeiro lugar, e depois fazendo uma das seguintes coisas: <itemizedlist>
<listitem>
<para
>Pressionando a tecla <keycap
>Delete</keycap
>. </para>
</listitem>
<listitem>
<para
>Pressionando o botão <guiicon
>remover</guiicon
> da barra de ferramentas. </para>
</listitem>
<listitem>
<para
>Clicando com o &RMB; num dos objetos e selecionando a opção <guimenuitem
>Remover</guimenuitem
> do <link linkend="objects-context-menus"
>menu de contexto</link
> que aparece. </para>
</listitem>
</itemizedlist>
</para>
</section>
<section id="showing-hiding-objects">
<title
>Mostrando e ocultando objetos</title>
<para
>No &kig;, os objetos podem ser ocultos. Isto é feito selecionando os objetos, clicando com o &RMB; num deles e selecionando a opção <guimenuitem
>Ocultar</guimenuitem
> no <link linkend="objects-context-menus"
>menu de contexto</link
> que aparece. </para>
<para
>Para mostrar novamente os objetos, use a opção <menuchoice
><guimenu
>Editar</guimenu
><guimenuitem
>Mostrar Tudo...</guimenuitem
></menuchoice
>. Isto irá colocar como visíveis todos os objetos atualmente ocultos. </para>
</section>
<section id="undo-redo">
<title
>Desfazer/Refazer</title>
<para
>No &kig;, você poderá anular praticamente qualquer ação que tenha feito ao documento. Basta usar os botões de <guiicon
>desfazer</guiicon
>/<guiicon
>refazer</guiicon
> da barra de ferramentas ou o atalho apropriado. </para>
</section>
<section id="full-screen-mode">
<title
>Modo Tela Cheia</title>
<para
>O &kig; também tem um modo Tela Cheia. Para usá-lo, clique no botão apropriado da barra de ferramentas ou selecione <menuchoice
><guimenu
>Configurações</guimenu
><guimenuitem
>Modo Tela Cheia</guimenuitem
></menuchoice
>. </para>
<para
>Para sair do modo Tela Cheia, clique com o &RMB; na tela, num local em que não existam objetos presentes e selecione <guimenuitem
>Sair do Modo Tela Cheia</guimenuitem
> ou clique na tecla &Esc;. </para>
</section>
</chapter>
<chapter id="kig-object-types">
<title
>Tipos de Objetos do &kig;</title>
<para
>O &kig; suporta um número relativamente grande de tipos de objetos. Repare que nem todos os tipos disponíveis são mostrados nas barras de ferramentas, mas que existem também alguns objetos que você só poderá construir através do menu <guimenu
>Objetos</guimenu
> da barra de menu. Claro, como acontece com todos os aplicativos do &kde;, o que aparece nas barras de ferramentas é configurável. Experimente a opção <menuchoice
><guimenu
>Configurações</guimenu
> <guimenuitem
>Configurar Barras de Ferramentas...</guimenuitem
></menuchoice
> se quiser fazer isso. </para>
</chapter>
<chapter id="using-advanced">
<title
>Uso Avançado</title>
<section id="objects-context-menus">
<title
>Menus de Contexto</title>
<para
>O &kig; possui menus de contexto para os seus objetos. Experimente clicar com o &RMB; num objeto para que apareça um menu de contexto. Existem várias opções: para construir outros objetos, mudar as cores ou mesmo para ocultar, mover ou remover os objetos. Alguns dos objetos possuem opções próprias (⪚ você poderá redefinir a criação de certos pontos, de modo a estarem restritos a uma determinada linha, se isso não era possível, &etc;). Estas opções deverão ser bastante simples de compreender. </para>
</section>
<section id="document-context-menus">
<title
>Menus de contexto do documento</title>
<para
>Clicando com o &RMB; no documento (&ie;, sem ser num objeto), irá aparecer um menu que você poderá usar para iniciar a criação de um novo objeto, mudar o sistema de coordenadas usado, mostrar os objetos ocultos ou ainda ampliar ou reduzir o documento. </para>
</section>
<section id="defining-macros">
<title
>Definindo Macros</title>
<para
>Um dos recursos mais avançados no &kig; é o seu suporte para macros. Isto permite-lhe definir um novo tipo de objeto, combinando outros objetos. </para>
<para
>Por exemplo: suponha que deseje criar uma macro para criar uma circunferência a partir de três pontos dela. Você teria de criar esses três pontos, algumas perpendiculares e pontos médios até que encontrasse o centro, construindo depois a circunferência com o centro determinado e um dos pontos anteriores. A imagem seguinte deverá clarificar isto um pouco: </para>
<screenshot>
<screeninfo
>Testando a execução de macros</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="test_run_macro.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Testando a execução de macros</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>A seguir vem a definição da macro. Selecione a opção <guimenuitem
>Nova macro</guimenuitem
> do menu <guimenu
>Tipo</guimenu
> ou clique no botão da barra de ferramentas. Irá aparecer um assistente que lhe irá pedir para selecionar os objetos indicados. Selecione os três pontos (clique neles para selecioná-los, e clique novamente para os deselecionar), clicando depois no botão <guibutton
>Próximo</guibutton
> para continuar. Finalmente, selecione os últimos objetos (apenas a circunferência, no nosso exemplo). </para>
<screenshot>
<screeninfo
>O assistente de macros</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="macro_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>O assistente de macros</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Depois de ter terminado os passos anteriores, clique no botão <guibutton
>Próximo</guibutton
> para continuar. Insira um nome e, opcionalmente, uma descrição do seu novo tipo, clicando depois no botão <guibutton
>Terminar</guibutton
>. O seu tipo de macro está agora terminado. </para>
<para
>Para usar o tipo da nova macro, clique no seu botão da barra de ferramentas ou use o menu <guimenu
>Objetos</guimenu
>. Criar um objeto de uma macro é então tão simples como criar um outro objeto qualquer. </para>
<screenshot>
<screeninfo
>Usando o seu novo tipo</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="macros_at_work.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Usando o seu novo tipo</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="working-with-types">
<title
>Trabalhando com tipos</title>
<para
>Como você viu no capítulo anterior, o &kig; permite-lhe criar os seus próprios objetos. O &kig; também se certifica que, logo que tenha criado um objeto, ele é gravado na saída e carregado na inicialização. Você não terá que gravar ou carregar manualmente as definições das macros. Contudo, o &kig; permite-lhe fazer mais com as macros. Se você selecionar a opção <menuchoice
><guimenu
>Tipos</guimenu
><guimenuitem
>Gerenciar os Tipos...</guimenuitem
></menuchoice
>, você verá uma janela onde poderá editar os seus tipos. Isto permite-lhe remover os tipos que não são mais usados, exportá-los para um arquivo ou mesmo carregá-los a partir de outro arquivo. </para>
<screenshot>
<screeninfo
>Janela de Edição de Tipos</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="edit_types_dialog.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>A Janela de Edição de Tipos</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="text-labels">
<title
>Legendas textuais</title>
<para
>O &kig; permite-lhe adicionar legendas de texto a uma construção. Isto é muito útil para mostrar os nomes, explicações ou textos auxiliares na sua construção. O &kig; poderá também mostrar informações variáveis sobre os objetos (também conhecidas como <quote
>propriedades</quote
>). </para>
<para
>Para iniciar a criação de uma legenda de texto, basta escolher o botão da <guibutton
>Legenda Textual</guibutton
> na barra de ferramentas na barra de ferramentas do &kig; ou selecionando <menuchoice
><guimenu
>Objetos</guimenu
><guisubmenu
>Outros</guisubmenu
><guimenuitem
>Legenda textual</guimenuitem
> </menuchoice
> da barra de menu. </para>
<para
>A seguir, você terá que escolher uma localização para a legenda textual. Você poderá então escolher uma localização aleatória na tela ou optar por <quote
>anexar</quote
> a legenda a outro objeto. </para>
<screenshot>
<screeninfo
>Anexando uma legenda a uma circunferência...</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="text_label_attaching.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Anexando uma legenda a uma circunferência...</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Você poderá agora acessar à janela da legenda de texto. Aqui, você poderá escrever o texto que deseja mostrar na nova legenda e clicar em <guibutton
>Terminar</guibutton
>. A legenda deverá agora estar presente no seu documento. </para>
<screenshot>
<screeninfo
>A Janela da Legenda Textual</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="text_label_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>A Janela da Legenda Textual</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>O exemplo anterior foi simples e limitava-se apenas a texto. Contudo, existe também o suporte para mostrar informações variáveis sobre os objetos de uma legenda (⪚ você poderá criar uma legenda que mostra o texto <quote
>Este segmento tem %1 unidades de comprimento.</quote
> em que o <token
>%1</token
> seria dinamicamente substituído pelo tamanho de um determinado segmento). </para>
<para
>Para fazer isso, insira um texto com o número de substituições ( <token
>%1</token
>, <token
>%2</token
> &etc;) nele. Quando terminar, clique no botão <guibutton
>Próximo</guibutton
> para continuar. Se você quiser alterar o texto ou as variáveis depois, poderá voltar atrás com a opção <guibutton
>Anterior</guibutton
>. </para>
<para
>O assistente mostra agora o texto que introduziu com todas as substituições alteradas para algo do tipo <guilabel
>argumento 1</guilabel
>. A seleção do que deverá mostrar num determinado argumento é feita quando você, em primeiro lugar, clicar no argumento em questão. Clique então no objeto sobre o qual deseja mostrar informações, selecionando no fim um pedaço de informação no menu de contexto que aparece. No exemplo acima, você iria clicar no <guilabel
>argumento 1</guilabel
>, clicar no segmento correto da janela principal do &kig;, e finalmente selecionar a propriedade <guilabel
>Comprimento</guilabel
>. Depois disso, você poderá preencher as variáveis restantes ou selecionar outra propriedade para uma das variáveis, se desejar alterá-la. Quando terminar, clique no botão <guibutton
>Terminar</guibutton
> para finalizar a criação da legenda de texto. </para>
<screenshot>
<screeninfo
>Selecionando uma propriedade para uma parte variável</screeninfo>
<mediaobject>
<imageobject>
<imagedata
fileref="text_label_wizard__select_property.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Selecionando uma propriedade para uma parte variável</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
<section id="locuses">
<title
>'Locuses'</title>
<para
>O &kig; suporta a utilização de 'locuses'. Um 'locus' é definido matematicamente como o conjunto de todos os pontos ou linhas que satisfazem ou são determinados através de condições específicas; um exemplo é <quote
>o 'locus' dos pontos equidistantes de um detreminado ponto é uma circunferência</quote
>. Vamos ver um exemplo de utilização de 'locuses' no &kig;: </para>
<para
>Considere a seguinte construção geométrica: É desenhada uma circunferência e um ponto que se pode mover ao longo da sua superfície (construa este ponto, posicionando o cursor numa circunferência e clicando com o &MMB;. Se você então tentar mover o ponto resultante, verá que não consegue movê-lo para fora da circunferência). Depois, é desenhado um segmento desde esse ponto até ao centro da circunferência e o ponto médio desse segmento. </para>
<screenshot>
<screeninfo
>A criação de um 'locus' simples</screeninfo>
<mediaobject>
<imageobject>
<imagedata
fileref="simple_locus_construction.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>A criação de um 'locus' simples</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Agora, se mover o ponto que está restringido à circunferência, você poderá ver que o segundo ponto se move com ele. Se você mantivesse uma caneta acima do segundo ponto e movesse o primeiro ponto à volta da circunferência, iria criar uma nova circunferência com metade do tamanho da outra. Veremos abaixo que isto é exatamente o que um 'locus' faz. O caminho que o segundo ponto percorre enquanto o primeiro se move à volta da circunferência é como ficaria o 'locus'. </para>
<para
>De fato, a criação do 'locus' é muito simples. Clique no seu botão na barra de ferramentas ou selecione a opção <menuchoice
><guimenu
>Objetos</guimenu
> <guisubmenu
>Outros</guisubmenu
> <guimenuitem
>'Locus'</guimenuitem
> </menuchoice
> do menu. Selecione então o ponto restrito como o ponto móvel (o texto <guilabel
>Ponto Móvel</guilabel
> irá aparecer à medida que você passa o mouse por cima) e o outro como ponto dependente. Irá então aparecer o 'locus'. </para>
</section>
</chapter>
<chapter id="scripting">
<title
>Programação</title>
<para
>O &kig; permite ao usuário criar tipos personalizados na linguagem de programação Python. Este é um recurso muito avançado, e só é conhecido pelo autor um outro programa de Geometria Interativa que faça o mesmo (o programa do GNOME &drgeo;). </para>
<para
>A programação em Python no &kig; basicamente permite-lhe criar a sua própria forma de definir um objeto a partir de certos objetos-pai. Por exemplo, se você for um professor de matemática e se tiver alguma forma bonita de calcular um ponto interessante de uma cônica, então em vez de lidar com construções complexas e macros, você poderá então definir em Python como o ponto será calculado, deixando que o &kig; o mostre para você. </para>
<para
>Suponha que você não conhecia o tipo Ponto Médio do &kig; e quisesse mostrar o ponto médio de dois pontos indicados. Você iria então carregar no botão <guibutton
>'Script' de Python</guibutton
> da barra de ferramentas ou selecionar a opção <menuchoice
> <guimenu
>Objetos</guimenu
> <guisubmenu
>Outros</guisubmenu
> <guimenuitem
>'Script' de Python</guimenuitem
> </menuchoice
> na barra de menu. Aparecerá então um assistente que lhe permitirá prosseguir. </para>
<screenshot>
<screeninfo
>O Assistente de Objetos de 'Scripts'</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="script_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>O Assistente de Objetos de 'Scripts'</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>A primeira coisa que terá que fazer é selecionar os argumentos do objeto. No nosso exemplo, isto corresponde aos dois pontos dos quais pretendemos mostrar o ponto médio. Selecione-os na janela principal do &kig; e clique em <guibutton
>Próximo</guibutton
> para prosseguir. </para>
<para
>Agora, será apresentado um campo de texto onde poderá inserir o código do seu objeto. O código de modelo e alguns comentários já estão colocados. É importante certificar-se que o seu código é Python válido. As pessoas familiarizadas com o Python irão reparar que já está definida uma função em Python chamada <function
>calc</function
>. É, por isso, necessário aderir às regras do Python para definir funções. Por exemplo, cada linha da função deverá começar por um <keysym
>Tab</keysym
>. A primeira linha que não comece por uma <keysym
>tabulação</keysym
> termina a definição da função. </para>
<para
>A função de Python que deverá ser definida é chamada de <quote
>calc</quote
> e, no nosso caso, aceita dois argumentos. Estes são os objetos que você selecionou como argumentos na tela anterior. Existirão tantos argumentos quanto os que você tenha selecionado. Eles chamar-se-ão de <parameter
>arg1</parameter
> e <parameter
>arg2</parameter
>, mas você poderá mudar os nomes deles para algo mais compreensível, se desejar. </para>
<para
>Na função, você poderá fazer todos os tipos de cálculos que julgue necessários, usando os dois argumentos, se necessário. Você deverá devolver o objeto que deseja que apareça. No nosso caso, este é um objeto <classname
>Point</classname
>. Os dois argumentos são também objetos <classname
>Point</classname
>, e pode-se usar a função <function
>Point.coordinate()</function
> para registar as coordenadas dos dois pontos indicados. </para>
<para
>Os cálculos necessários no nosso exemplo são muito simples; simplesmente adicionam-se as duas coordenadas e divide-se o resultado por dois. A partir daí, cria-se um novo ponto com essa coordenada. O código de Python necessário é:</para>
<programlisting
>def calc( a, b ):
m = ( a.coordinate() + b.coordinate() ) / 2;
return Point( m )
</programlisting>
<screenshot>
<screeninfo
>Inserindo o código</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="script_wizard_entering_code.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Inserindo o código para o ponto médio no assistente do Objeto de 'Script'.</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Se você clicar agora no botão <guibutton
>Terminar</guibutton
>, então o novo objeto irá aparecer no documento do &kig;. Se você mover um dos pontos, então o novo ponto irá mover-se junto com eles. Objetos bem mais poderosos poderão ser criados desta forma e você é encorajado a fazer isso. </para>
<screenshot>
<screeninfo
>Objeto de 'Script' construído</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructed_script_object.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>O objeto de 'script' recém construído. </phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Todos os objetos do &kig; podem ser usados no código de Python. Como foi indicado acima, os pontos fazem parte da classe <classname
>Point</classname
> e você poderá usar, ⪚, o método <function
>Point.coordinate()</function
>. Você poderá devolver também todos os tipos de objetos e não apenas <classname
>Point</classname
>'s. Estão disponíveis muitos mais métodos e classes na página de código em Python do &kig;, assim como uma referência completa sobre eles <ulink url="http://edu.kde.org/kig/manual/scripting-api/index.html"
>aqui</ulink
>. </para>
</chapter>
<chapter id="kig-features">
<title
>Recursos do &kig;</title>
<itemizedlist>
<listitem>
<para
>O &kig; é um aplicativo de código aberto. Isto significa que você é livre para o usar e modificar da forma que o desejar. A distribuição do &kig; está sujeita a algumas restrições, basicamente na medida em que todos deverão ter os mesmos direitos de usar o &kig;, incluindo as suas modificações, tal como você e eu. </para>
<para
>Os programas de 'software' livre são desenvolvidos com um espírito muito aberto e os seus programadores são normalmente muito cooperativos com a reação dos usuários. Assim, se tiver algumas dúvidas, queixas ou algo do gênero sobre o &kig;, por favor comunique-as ao autor em <email
>[email protected]</email
>. </para>
</listitem>
<listitem>
<para
>O &kig; é um aplicativo KPart, o que significa que você poderá incorporá-lo em qualquer outro programa do &kde;. Se você abrir um arquivo <literal role="extension"
>.kig</literal
> diretamente no &konqueror;, ele poderá ser aberto diretamente na tela do &konqueror; sem a necessidade de iniciar um aplicativo externo. </para>
</listitem>
<listitem>
<para
>O trabalho com o &kig; deverá ser relativamente simples. A criação de objetos é simples e interativa, com a apresentação de alguns resultados preliminares, &etc;. A mudança de posição, seleção e a criação deverão funcionar da forma que todos esperariam. O suporte para a anulação de ações deverá também ser bastante intuitivo. </para>
</listitem>
<listitem>
<para
>O &kig; suporta a definição de macros de uma forma relativamente simples. Estes objetos são apresentados ao usuário como objetos normais. Eles são gravados na saída e carregados na inicialização, por isso não são perdidos ao sair. No <link linkend="working-with-types"
>Gerenciador de Tipos</link
>, você poderá gerenciar estes objetos. Você poderá exportá-los como arquivos, importá-los a partir de arquivos ou removê-los. </para>
</listitem>
<listitem>
<para
>O &kig; grava os seus dados num formato &XML; simples. </para>
</listitem>
<listitem>
<para
>O &kig; suporta a criação de 'locuses'. </para>
</listitem>
<listitem>
<para
>O &kig; permite-lhe exportar um arquivo do &kig; para outros formatos interessantes, como imagens ou arquivos do <application
>XFig</application
>, <application
>LaTeX</application
> e arquivos vetoriais em <acronym
>SVG</acronym
>. Isto é bastante útil, uma vez que nem todos os programas suportam ainda o formato de arquivos do &kig;. </para>
</listitem>
<listitem>
<para
>O &kig; tem um sistema de transformações bastante flexível. </para>
</listitem>
<listitem>
<para
>O &kig; pretende ser compatível com os seus concorrentes. É por isso que suporta o formato de arquivos do &kgeo;, do &kseg; e, parcialmente, do &drgeo; e do &cabri;, assim como está planejado o suporte para outros formatos. </para>
</listitem>
</itemizedlist>
</chapter>
<chapter id="faq">
<title
>Perguntas e Respostas</title>
&reporting.bugs; &updating.documentation; <para
></para>
</chapter>
<chapter id="credits">
<title
>Créditos e Licença</title>
<para
>&kig; </para>
<para
>Direitos autorais do &kig; 2002-2004 Dominique Devriese <email
>[email protected]</email
> </para>
<para
>Direitos autorais da documentação 2002-2004 Dominique Devriese. <email
>[email protected]</email
> </para>
<para
>Revisado por &Philip.Rodrigues; &Philip.Rodrigues.mail;.</para>
<para
>Tradução de Marcus Gama<email
>[email protected]</email
></para
> &underFDL; &underGPL; </chapter>
<appendix id="installation">
<title
>Instalação</title>
<sect1 id="getting-kig">
<title
>Como obter o &kig;</title>
&install.intro.documentation; </sect1>
<sect1 id="compilation">
<title
>Compilação e Instalação</title>
&install.compile.documentation; </sect1>
</appendix>
<appendix id="contributing">
<title
>Contribuir</title>
<section id="kig-is-free">
<title
>Software Livre</title>
<para
>O &kig; é <ulink url="http://www.gnu.org/philosophy/philosophy.html#AboutFreeSoftware"
> 'Software' Livre</ulink
>. Isto significa que o seu código-fonte está disponível livremente na Internet e todos podem o usar, ler, modificar ou distribuir. Este trabalho é feito pelo autor como um passatempo e permitiu-lhe aprender bastante sobre programação, C++, &kde;/&Qt;, matemática, colaboração em 'software' e projetos de código-aberto durante esse processo. </para>
</section>
<section id="contribute-to-kig">
<title
>Contribuir</title>
<para
>O objetivo deste capítulo é explicar-lhe os direitos que a licença do &kig; lhe concede. Como em todo o 'software' livre, você tem a permissão (e é encorajado para tal) para corrigir os problemas que encontrar durante a sua utilização, adicionar recursos que sinta falta ou distribuir o seu programa modificado, e deverá enviar essas modificações para o autor em <email
>[email protected]</email
>, para que ele as possa incluir na próxima versão para que os outros se entretenham. Pessoalmente, por parte do autor, não há interesse financeiro no projeto. </para>
<para
>Se você não tiver certeza dos seus direitos para usar este 'software' ou dos das outras pessoas para usar as modificações que você fizer ao programa, &etc;, por favor leia a licença. Você poderá encontrá-la no arquivo <filename
>COPYING</filename
> do pacote de código do &kig; ou na página da <guilabel
>licença</guilabel
> da janela <guilabel
>Sobre o Kig</guilabel
>. </para>
</section>
<section id="howto-contribute">
<title
>Como contribuir ?</title>
<para
>Todas as contribuições são bem-vindas. Se você achar que os ícones são feios ou que o manual precisa ser atualizado ou, ainda, se achar que tem uma macro mesmo muito boa para compartilhar com o resto do mundo, não hesite em mandá-la para o autor. Lembre-se por favor que as suas contribuições serão distribuídas segundo os termos da <acronym
>GPL</acronym
> da &GNU;; você poderá encontrar os termos da licença no arquivo <filename
>COPYING</filename
> do pacote de código do &kig; e no capítulo de <link linkend="credits"
>Créditos e Licenças</link
> deste manual. </para>
</section>
</appendix>
&documentation.index;
</book>
<!--
Local Variables:
mode: xml
End:
-->
|