<?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 "kdeedu">
<!ENTITY kappname "&kig;">
<!ENTITY % addindex "IGNORE">
<!ENTITY % Italian "INCLUDE">
<!-- change language only here -->
]
>

<book lang="&language;">

<bookinfo>
<title
>Manuale di &kig;</title>

<authorgroup>
<author
><firstname
>Dominique</firstname
> <surname
>Devriese</surname
> <affiliation
> <address
><email
>devriese@kde.org</email
></address>
</affiliation>
</author>
<othercredit role="translator"
><firstname
>Pino</firstname
><surname
>Toscano</surname
><affiliation
><address
><email
>toscano.pino@tiscali.it</email
></address
></affiliation
><contrib
>Traduzione italiana</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; è un'applicazione &kde; per la geometria interattiva. </para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>KDE-Edu</keyword>
<keyword
>Kig</keyword>
<keyword
>Geometria interattiva</keyword>
<keyword
>KGeo</keyword>
<keyword
>Cabri</keyword>
<keyword
>Dr.Geo</keyword>
<keyword
>KSeg</keyword>
</keywordset>
</bookinfo>


<chapter id="introduction">
<title
>Introduzione</title>

<para
>&kig; è un'applicazione per la Geometria interattiva. Vuole ottenere due scopi: </para>

<itemizedlist>
<listitem
><para
>Permettere agli studenti di esplorare interattivamente le forme e i concetti matematici usando il computer. </para
></listitem>

<listitem
><para
>Servire da strumento <acronym
>WYSIWYG</acronym
> per disegnare forme matematiche ed includerle in altri documenti.</para
></listitem>
</itemizedlist>

<para
>Puoi segnalare problemi in &kig; usando lo strumento interno di segnalazione bug (<menuchoice
><guimenu
>Aiuto</guimenu
><guimenuitem
>Segnala un bug...</guimenuitem
></menuchoice
>), o contattandomi all'indirizzo <email
>toscano.pino@tiscali.it</email
>. </para>
<para
>Dato che &kig; supporta le macro e i luoghi, permette la definizione di macro piuttosto avanzate. Se hai creato una macro interessante, che pensi possa essere utile ad altre persone, puoi inviarla per posta elettronica a me all'indirizzo <email
>toscano.pino@tiscali.it</email
>, così che possa includerla nella distribuzione (in tal caso sarà rilasciata sotto i termini della licenza di &kig;, la licenza <ulink url="http://www.gnu.org/licenses/licenses.html#GPL"
>GPL</ulink
>, in modo che le altre persone possano usarla ed adattarla liberamente). </para>
</chapter>


<chapter id="using-kig-basic">
<title
>Uso basilare</title>
<section id="constructing-objects">
<title
>Costruire oggetti</title>
<section id="constructing-points">
<title
>Costruire punti</title>
<para
>Puoi costruire punti in diversi modi:</para>
<itemizedlist>
<listitem>
<para
>Seleziona <menuchoice
><guimenu
>Oggetti</guimenu
> <guisubmenu
>Punti</guisubmenu
><guimenuitem
>Punto</guimenuitem
></menuchoice
> dalla barra dei menu o premi il pulsante appropriato nella barra degli strumenti. Puoi quindi costruire un punto facendo clic sulla posizione desiderata nella finestra.</para
> <note
><para
>La procedura è la stessa per costruire gli altri oggetti: fai clic sulla voce della barra dei menu o sul pulsante desiderato nella barra degli strumenti e seleziona gli oggetti necessari per costruire l'oggetto.</para
></note>
</listitem>
<listitem>
<para
>Dato che hai spesso bisogno di costruire punti, puoi costruirne uno facendo semplicemente clic da qualche parte sullo schermo con il &MMB;, senza usare menu o pulsanti. </para>
</listitem>
<listitem>
<para
>Puoi costruire punti mentre stai costruendo altri oggetti, selezionandoli opzionalmente per l'oggetto che stai costruendo. Per saperne di più, guarda <xref linkend="constructing-other-objects"/>. </para>
</listitem>
</itemizedlist>

<screenshot>
<screeninfo
>Un punto è stato costruito</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructed_a_point.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Un punto è stato costruito</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>

<section id="constructing-other-objects">
<title
>Costruire altri oggetti</title>
<para
>Oggetti diversi dai punti si possono costruire selezionando la voce appropriata nel menu <guimenu
>Oggetti</guimenu
>, o facendo clic su uno dei pulsanti della barra degli strumenti. </para>
<screenshot>
<screeninfo
>Costruire un cerchio</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructing_a_circle.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Costruire un cerchio</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Questo inizierà la costruzione di un nuovo oggetto del tipo scelto. Tutti questi tipi richiedono argomenti. Per esempio, se hai selezionato un cerchio secondo centro e un punto, avrai bisogno di dare due punti: uno per il centro, e uno per il punto sul cerchio. </para>
<para
>Questi argomenti sono anche oggetti, che possono essere selezionati semplicemente facendo clic su di essi. Se muovi il cursore sopra un argomento che vuoi usare per costruire un oggetto, sarà mostrata un'immagine preliminare dell'oggetto, così saprai come sarà. Per oggetti che richiedono punti come argomenti, puoi costruire un nuovo punto alla posizione corrente del cursore e selezionarlo premendo il &LMB;. </para>
<para
>Puoi sempre annullare la costruzione del nuovo oggetto premendo il tasto &Esc; o facendo clic sul pulsante <guiicon
>Interrompi</guiicon
> (ottagono rosso con una <quote
>X</quote
>) nella barra degli strumenti. </para>
<screenshot>
<screeninfo
>Costruire un cerchio.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructing_a_circle_2.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Costruire un cerchio</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>
</section>

<section id="selecting-objects">
<title
>Selezionare oggetti</title>
<para
>Gli oggetti possono essere selezionati in due modi: </para>
<itemizedlist>
<listitem>
<para
>Facendo semplicemente clic su un oggetto lo si selezionerà, annullando la selezione corrente. Se vuoi selezionare più oggetti contemporaneamente, tieni premuto il tasto &Ctrl; mentre fai clic su un oggetto. </para>
</listitem>
<listitem>
<para
>Facendo clic su un punto vuoto sullo schermo e trascinando il mouse, puoi selezionare tutti gli oggetti dentro il rettangolo che si crea. Quest'azione annullerà la selezione corrente. Come nel caso precedente, tendendo premuto il tasto &Ctrl; potrai mantenere la selezione corrente. </para>
</listitem>
</itemizedlist>
<para
>Quando hai più di un oggetto sotto il mouse, puoi facilmente scegliere quale oggetto selezionare e aggiungere alla selezione corrente. Fai clic con il &LMB;, mentre tieni premuto il tasto &Shift;, per avere un menu a comparsa con tutti gli oggetti sotto il mouse. Quindi, puoi scegliere l'oggetto di cui hai bisogno. Come detto prima, il comportamento del tasto &Ctrl; avrà effetto sulla selezione. </para>

<screenshot>
<screeninfo
>Selezionare oggetti</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="selecting_objects.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Selezionare oggetti</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>

<section id="moving-objects">
<title
>Muovere oggetti</title>
<para
>Per muovere gli oggetti, devi prima <link linkend="selecting-objects"
>selezionarli</link
>. </para>
<para
>Quando gli oggetti che vuoi muovere sono selezionati, puoi iniziare a muoverli premendo il &LMB; su uno qualsiasi di essi e trascinandoli. Quando hai finito, basta che rilasci il &LMB;. </para>
<note
><para
>Per alcuni tipi di oggetti (specialmente quando definiti da complicati luoghi), muoverli può risultare lento sull'hardware più vecchio. È un inconveniente sfortunato, ma inevitabile, data la mole di calcoli necessari. </para
></note
> <note
><para
>Se premi il &RMB; su uno degli oggetti selezionati, e scegli <guimenuitem
>Muovi</guimenuitem
>, il movimento del mouse muoverà l'oggetto. Quando l'oggetto si trova sulla posizione desiderata, un altro clic con il &LMB; fermerà il movimento dell'oggetto.</para
></note>
</section>
<section id="deleting-objects">
<title
>Eliminare oggetti</title>
<para
>Gli oggetti possono essere eliminati prima <link linkend="selecting-objects"
>selezionandoli</link
>, e poi facendo una di queste cose: <itemizedlist>
<listitem>
<para
>Premendo il tasto <keycap
>Canc</keycap
>. </para>
</listitem>
<listitem>
<para
>Premendo il pulsante <guiicon
>Elimina</guiicon
> nella barra degli strumenti. </para>
</listitem>
<listitem>
<para
>Premendo il tasto <mousebutton
>destro</mousebutton
> su uno degli oggetti, e selezionando <guimenuitem
>Elimina</guimenuitem
> dal <link linkend="objects-context-menus"
>menu contestuale</link
> che appare. </para>
</listitem>
</itemizedlist>
</para>
</section>

<section id="showing-hiding-objects">
<title
>Mostrare e nascondere oggetti</title>
<para
>In &kig; gli oggetti possono essere nascosti. Lo si fa selezionandoli, premendo il &RMB; su uno di loro, e selezionando <guimenuitem
>Nascondi</guimenuitem
> nel <link linkend="objects-context-menus"
>menu contestuale</link
> che appare. </para>
<para
>Per mostrare gli oggetti, scegli la voce di menu <menuchoice
><guimenu
>Modifica</guimenu
><guimenuitem
>Mostra tutti</guimenuitem
></menuchoice
>. Questo mostrerà tutti gli oggetti correntemente nascosti. </para>

<section id="night-vision">
<title
>Visione notturna</title>
<para
>La visione notturna è un modo particolare di lavorare con oggetti nascosti. Quando devi muovere o cambiare qualcosa in uno o più oggetti ma senza mostrare tutti gli oggetti nascosti che hai, allora la visione notturna ti sarà d'aiuto. </para>
<para
>Fondamentalmente, ti permette di vedere gli oggetti nascosti come se fossero visibili, cosicché puoi manipolarli come faresti normalmente. Nella modalità visione notturna, gli oggetti nascosti saranno visibili con un colore grigio. </para>
<para
>Per attivare/disattivare la modalità visione notturna, usa <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Indossa occhiali infrarossi</guimenuitem
></menuchoice
>. </para>
</section>
</section>

<section id="undo-redo">
<title
>Annulla/Rifai</title>
<para
>In &kig; puoi annullare quasi tutte le modifiche fatte nel documento. Basta che usi i pulsanti <guiicon
>Annulla</guiicon
>/<guiicon
>Rifai</guiicon
> sulla barra degli strumenti, o le scorciatoie appropriate. </para>
</section>

<section id="full-screen-mode">
<title
>Modalità a tutto schermo</title>
<para
>&kig; ha anche una modalità a tutto schermo. Per usarla, fai clic sul pulsante appropriato sulla barra degli strumenti, o seleziona <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Modalità a tutto schermo</guimenuitem
></menuchoice
>. </para>
<para
>Per lasciare la modalità a tutto schermo, premi il &RMB; su un punto dove non ci sono oggetti, e seleziona <guimenuitem
>Esci dalla modalità a tutto schermo</guimenuitem
>, o premi il tasto &Esc;. </para>
</section>
</chapter>


<chapter id="kig-object-types">
<title
>Tipi di oggetti in &kig;</title>
<para
>&kig; supporta un numero piuttosto ampio di tipi di oggetti. Nota che non tutti i tipi di oggetti disponibili sono mostrati nelle barre degli strumenti: ci sono alcuni oggetti che possono essere costruiti attraverso il menu <guimenu
>Oggetti</guimenu
> nella barra dei menu. Ovviamente, come con tutte le applicazioni &kde;, i contenuti delle barre degli strumenti sono configurabili. Per farlo prova l'opzione <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Configura le barre degli strumenti...</guimenuitem
></menuchoice
>. </para>
</chapter>


<chapter id="using-advanced">
<title
>Uso avanzato</title>
<section id="objects-context-menus">
<title
>Menu contestuali</title>
<para
>&kig; ha menu contestuali per i suoi oggetti. Prova a premere il &RMB; su un oggetto per vederlo apparire. Ci sono molte opzioni: per costruire altri oggetti, per impostare i colori, e anche per nascondere, mostrare ed eliminare gli oggetti. Alcuni oggetti hanno opzioni proprie (&eg; puoi associare certi punti ad una retta cui prima non lo erano, &etc;). Queste opzioni dovrebbero essere semplici da capire. </para>
</section>

<section id="document-context-menus">
<title
>Menu contestuali del documento</title>
<para
>Premendo il tasto <mousebutton
>destro</mousebutton
> sul documento (&ie; non su un oggetto) apparirà un menu a comparsa che puoi usare per iniziare a costruire nuovi oggetti, cambiare il sistema di coordinate usato, mostrare gli oggetti nascosti, ed anche eseguire lo zoom avanti e indietro nel documento. </para>
</section>

<section id="defining-macros">
<title
>Definire Macro</title>
<para
>Una delle caratteristiche più avanzate in &kig; è il supporto per le macro. Ciò permette di definire un nuovo tipo di oggetto da altri già definiti. </para>
<para
>Per esempio: immagina che tu voglia creare una macro per costruire un cerchio da tre punti sulla sua circonferenza. Dovresti inserire tre punti, quindi costruire delle perpendicolari e punti medi fino a quando trovi il centro. Ora puoi usare il comando esistente <quote
>Costruisci un cerchio dati il centro e un punto</quote
> (usando uno dei tre punti come punto per questo comando). L'immagine seguente dovrebbe chiarirti le cose: </para>
<screenshot>
<screeninfo
>Una macro all'opera</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="test_run_macro.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Una macro all'opera</phrase>
</textobject>
</mediaobject>
</screenshot>

<para
>Quindi viene la definizione della macro. Seleziona <guimenuitem
>Nuova macro...</guimenuitem
> dal menu <guimenu
>Tipi</guimenu
>, o fai clic sul pulsante nella barra degli strumenti. Apparirà una procedura guidata, dicendoti di selezionare gli oggetti dati. Nel nostro esempio, questi sono i tre punti. Seleziona i tre punti (fai clic su di loro per selezionarli, fai clic di nuovo per deselezionarli) e fai clic sul pulsante <guibutton
>Successivo</guibutton
> per continuare. Infine, seleziona l'ultimo oggetto (solo il cerchio nel nostro esempio). </para>

<screenshot>
<screeninfo
>La procedura guidata delle macro</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="macro_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>La procedura guidata delle macro</phrase>
</textobject>
</mediaobject>
</screenshot>

<para
>Dopo aver completato i passi precedenti, fai clic sul pulsante <guibutton
>Successivo</guibutton
> per continuare. Inserisci un nome e opzionalmente una descrizione per il nuovo tipo, e fai clic sul pulsante <guibutton
>Fine</guibutton
>. Il tuo tipo macro ora è finito. </para>

<para
>Per usare il nuovo tipo macro, fai clic sul suo pulsante nella barra degli strumenti o usa il menu <guimenu
>Oggetti</guimenu
>. La costruzione di ogni oggetto macro è come quella di ogni altro oggetto. </para>
<screenshot>
<screeninfo
>Usare il tuo nuovo tipo</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="macros_at_work.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Usare il tuo nuovo tipo</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>

<section id="working-with-types">
<title
>Lavorare con i tipi</title>
<para
>Come hai visto nel capitolo precedente, &kig; ti permette di creare oggetti tuoi. &kig; anche si assicura che una volta che hai creato un oggetto, esso sia salvato all'uscita e caricato all'avvio del programma. Non devi salvare e caricare le definizioni delle macro manualmente. Tuttavia, &kig; ti permette di fare di più con le macro. Se selezioni <menuchoice
><guimenu
>Tipi</guimenu
><guimenuitem
>Gestisci tipi...</guimenuitem
></menuchoice
> dal menu, vedrai una finestra di dialogo dove puoi modificare i tuoi tipi. Essa ti permette di modificare i tipi esistenti, eliminare i tipi non più utilizzati, esportarli su file, o anche di caricarli da un altro file. </para>
<screenshot>
<screeninfo
>La finestra di dialogo Modifica tipi</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="edit_types_dialog.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>La finestra di dialogo Modifica tipi</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>

<section id="text-labels">
<title
>Etichette di testo</title>
<para
>&kig; ti permette di aggiungere etichette di testo ad una costruzione. Ciò è molto utile per aggiungere nomi, spiegazioni o altro testo alle costruzioni. &kig; può anche visualizzare informazioni variabili sugli oggetti (<quote
>proprietà</quote
>). </para>
<para
>Per iniziare a costruire un'etichetta di testo, premi il pulsante <guibutton
>Etichetta di testo</guibutton
> nella barra degli strumenti di &kig; o seleziona <menuchoice
><guimenu
>Oggetti</guimenu
><guisubmenu
>Altri</guisubmenu
><guimenuitem
>Etichetta di testo</guimenuitem
></menuchoice
> nella barra dei menu. </para>
<para
>Quindi devi scegliere un punto dove porre l'etichetta di testo. Puoi scegliere sia un luogo casuale sullo schermo, sia di <quote
>associare</quote
> l'etichetta ad un oggetto. </para>
<screenshot>
<screeninfo
>Associare un'etichetta ad un cerchio...</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="text_label_attaching.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Associare un'etichetta ad un cerchio...</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Dopo aver selezionato dove posizionare l'etichetta, appare ora la finestra di dialogo dell'etichetta di testo. Qui puoi inserire il testo da mostrare nella nuova etichetta, e quindi fai clic su <guibutton
>Fine</guibutton
>. Ora dovresti vedere l'etichetta nel documento. </para>
<screenshot>
<screeninfo
>La finestra di dialogo Etichetta di testo</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="text_label_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>La finestra di dialogo Etichetta di testo</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>L'esempio precedente era semplice, e limitato al solo testo. Tuttavia, c'è anche il supporto per mostrare informazioni variabili sugli oggetti in un'etichetta (&eg; puoi costruire un'etichetta che mostra il testo <quote
>Questo segmento è lungo %1 unità.</quote
> dove <token
>%1</token
> dovrebbe essere sostituito dinamicamente dalla lunghezza di un segmento specifico). </para>
<para
>Per fare ciò, inserisci un testo con dentro dei segnaposto (<token
>%1</token
>, <token
>%2</token
> &etc;). Quando hai finito, premi il pulsante <guibutton
>Successivo</guibutton
> per continuare. Se più tardi vuoi cambiare il testo o le variabili, puoi sempre tornare indietro usando il pulsante <guibutton
>Precedente</guibutton
>. </para>
<para
>La procedura guidata adesso mostra il testo inserito con tutti i segnaposto sostituiti da qualcosa come <guilabel
>argomento 1</guilabel
>. Si può selezionare la proprietà connessa ad un certo argomento facendo prima clic sull'argomento in questione, fai poi clic sull'oggetto di cui hai bisogno e che ha questa proprietà, e quindi seleziona la proprietà stessa dal menu a comparsa che appare. Ad es., nell'esempio sopra, è necessario fare clic su <guilabel
>argomento 1</guilabel
>, clic sul segmento corretto nella finestra principale di &kig;, e selezionare la proprietà <guilabel
>Lunghezza</guilabel
>. In seguito, puoi riempire le parti variabili rimanenti, o cambiare la proprietà di una delle parti variabili se lo vuoi. Quando hai finito, fai clic sul pulsante <guibutton
>Fine</guibutton
> per completare la costruzione dell'etichetta di testo. </para>
<screenshot>
<screeninfo
>Selezionare una proprietà per una parte variabile</screeninfo>
<mediaobject>
<imageobject>
<imagedata
fileref="text_label_wizard__select_property.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Selezionare una proprietà per una parte variabile</phrase>
</textobject>
</mediaobject>
</screenshot>
</section>

<section id="locuses">
<title
>Luoghi</title>
<para
>&kig; supporta l'uso di luoghi. Un luogo è matematicamente definito come l'insieme di tutti i punti o rette che soddisfano o sono determinati da specifiche condizioni; come in <quote
>il luogo dei punti equidistanti da un punto dato è una circonferenza</quote
>. Vediamo un esempio di come è usato un luogo in &kig;: </para>
<para
>Considera la costruzione geometrica seguente: disegniamo un cerchio, e un punto che può muoversi liberamente lungo la sua circonferenza (costruisci questo punto posizionando il cursore su un cerchio, e premendo il &MMB;. Se provi a muovere il punto risultante, vedrai che non potrai muoverlo fuori dal bordo del cerchio). Quindi, disegniamo un segmento da quel punto fino al centro del cerchio, e il punto medio di quel segmento. </para>
<screenshot>
<screeninfo
>Una semplice costruzione usando un luogo</screeninfo>
<mediaobject>
<imageobject>
<imagedata
fileref="simple_locus_construction.png"
format="PNG"/>
</imageobject>
<textobject>
<phrase
>Una semplice costruzione usando un luogo</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Adesso se muovi il punto vincolato al cerchio, vedrai che il secondo punto si muove di conseguenza. Se tu tenessi una penna sul secondo punto, e muovessi il primo punto attorno al cerchio, vedresti disegnato un nuovo cerchio grande la metà dell'altro. Il percorso effettuato dal secondo punto durante il movimento del primo attorno al cerchio è il suo luogo. </para>
<para
>Attualmente la costruzione del luogo di un punto è molto semplice. Fai clic sul pulsante <guiicon
>luogo</guiicon
> nella barra degli strumenti, o seleziona <menuchoice
><guimenu
>Oggetti</guimenu
> <guisubmenu
>Altri</guisubmenu
> <guimenuitem
>Luogo</guimenuitem
> </menuchoice
> dalla barra dei menu. Quindi seleziona il punto vincolato come punto mobile (apparirà il testo <guilabel
>Punto mobile</guilabel
> non appena ci posizionerai il mouse sopra), e l'altro come punto dipendente. Sarà così disegnato il luogo del punto vincolato. </para>
</section>
</chapter>

<chapter id="scripting">
<title
>Scripting</title>
<para
>&kig; permette di creare tipi personalizzati nel linguaggio di script Python. Questa è una caratteristica molto avanzata, e conosco solo un altro programma per la geometria interattiva con una funzionalità simile (il programma per <acronym
>GNOME</acronym
> &drgeo;). </para>
<para
>In &kig; il sistema di script in Python permette di definire oggetti da altri oggetti definiti genitori. Per esempio, se sei un insegnante di matematica, e conosci vari modi per calcolare un punto interessante di una conica, invece di confonderti con costruzioni complesse e macro, scrivi solamente il codice Python necessario per calcolare il punto e &kig; te lo mostrerà. </para>
<para
>Immagina di non conoscere il tipo di &kig; già presente <quote
>Punto medio</quote
>, e di voler mostrare il punto medio di due punti dati. Fai clic sul pulsante <guibutton
>Script Python</guibutton
> nella barra degli strumenti, o seleziona <menuchoice
><guimenu
>Oggetti</guimenu
><guisubmenu
>Altri</guisubmenu
><guimenuitem
>Script Python</guimenuitem
></menuchoice
> dalla barra dei menu. Si presenta, quindi, una procedura guidata che ti permette di procedere. </para>
<screenshot>
<screeninfo
>La procedura guidata degli oggetti Script</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="script_wizard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>La procedura guidata degli oggetti Script</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>La prima cosa da fare è selezionare gli argomenti per l'oggetto script. Nel nostro esempio, questi sono rappresentati dai due punti dei quali vogliamo calcolare il punto medio. Selezionali nella finestra principale di &kig;, e fai clic su <guibutton
>Successivo</guibutton
> per procedere. </para>
<para
>Adesso si presenta una casella di testo dove inserire il codice per lo script. Trovi già del codice che serve da modello e dei commenti. È importante assicurarsi di aver inserito codice Python valido. Chi ha già familiarità con Python noterà che stiamo definendo una funzione Python chiamata <function
>calc</function
>. Perciò è necessario seguire le regole di Python per la definizione delle funzioni. Per esempio, ogni linea della funzione dovrebbe iniziare con <keysym
>Tab</keysym
>. La prima linea che non inizia con <keysym
>Tab</keysym
> termina la definizione della funzione. </para>
<para
>La funzione Python da definire è chiamata <function
>calc</function
>, e nel nostro caso accetta due argomenti. Questi sono gli oggetti selezionati come argomenti nella schermata precedente. Hai bisogno di tanti argomenti quanti ne hai selezionati lì. Sono chiamati <parameter
>arg1</parameter
> e <parameter
>arg2</parameter
> ma, se vuoi, puoi cambiare i loro nomi in qualcosa di più significativo. </para>
<para
>Nella funzione, puoi fare tutti i calcoli che ritieni necessari, usando, se opportuno, i due argomenti. Dovresti ritornare l'oggetto che vuoi definire. Nel nostro caso, questo è un oggetto <classname
>Point</classname
>. Anche i due argomenti sono oggetti <classname
>Point</classname
>, e possiamo usare la funzione <function
>Point.coordinate()</function
> per ricavare le coordinate dei due punti dati. </para>
<para
>I calcoli necessari nel nostro esempio sono molto semplici, dobbiamo sommare assieme le due coordinate, e dividere il risultato per due. Costruiamo quindi un nuovo punto usando il risultato. Il codice Python necessario è:</para>

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

<screenshot>
<screeninfo
>Inserimento del codice</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="script_wizard_entering_code.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>L'inserimento del codice per il punto medio nella procedura guidata dell'oggetto Script.</phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Se fai clic sul pulsante <guibutton
>Fine</guibutton
>, apparirà il nuovo oggetto nel documento di &kig;. Se muovi uno dei punti, il punto appena creato si muoverà di conseguenza. In questo modo possono essere costruiti molti oggetti potenti: sei incoraggiato a provarli. </para>
<screenshot>
<screeninfo
>Un oggetto Script appena costruito</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="constructed_script_object.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>L'oggetto Script appena costruito. </phrase>
</textobject>
</mediaobject>
</screenshot>
<para
>Tutti gli oggetti in &kig; possono essere usati nel codice Python. Come visto sopra, i punti appartengono alla classe <classname
>Point</classname
>, e &eg; puoi usare il metodo <function
>Point.coordinate()</function
>. Puoi restituire tutti i tipi di oggetti, non solo <classname
>Point</classname
>. Dal codice Python di &kig; sono disponibili molte altre classi e metodi, ed una guida più completa è disponibile <ulink url="http://edu.kde.org/kig/manual/scripting-api/index.html"
>sul sito di &kig;</ulink
>. </para>
</chapter>

<chapter id="kig-features">
<title
>Caratteristiche di &kig;</title>

<itemizedlist>
<listitem>
<para
>&kig; è un'applicazione open source. Ciò significa che sei libero di usarla e modificarla come vuoi. La distribuzione di &kig; è soggetta ad alcune restrizioni, in pratica ognuno dovrebbe avere gli stessi diritti di usare &kig; con le modifiche apportate. </para>
<para
>Il software libero è sviluppato con uno spirito molto aperto, e i programmatori sono di solito molto sensibili alle segnalazioni degli utenti. Perciò, se hai domande, lamentele, o qualsiasi altra cosa su &kig;, fallo sapere all'autore all'indirizzo <email
>toscano.pino@tiscali.it</email
>. </para>
</listitem>
<listitem>
<para
>&kig; è un'applicazione KPart, il che significa che puoi integrarla in altro software &kde;. Se apri un file <literal role="extension"
>.kig</literal
> in &konqueror;, può essere aperto direttamente in &konqueror; senza aver bisogno di avviare un'applicazione esterna. </para>
</listitem>
<listitem>
<para
>Lavorare con &kig; dovrebbe essere molto semplice. La costruzione di oggetti è facile e interattiva, vengono mostrati i risultati preliminari, &etc;. Muovere, selezionare, costruire oggetti funziona come uno se l'aspetta. Anche l'annullamento le modifiche dovrebbe essere molto intuitivo. </para>
</listitem>
<listitem>
<para
>&kig; supporta la definizione delle macro in maniera semplice. Questi oggetti sono presentati all'utente come oggetti normali. Sono salvati all'uscita e caricati all'avvio, in modo che non vadano persi. Puoi gestire questi tipi nella finestra di dialogo <guilabel
>Gestisci tipi</guilabel
> (guarda <xref linkend="working-with-types"/>). Puoi esportarli su file, importarli da file, modificarli ed eliminarli. </para>
</listitem>
<listitem>
<para
>&kig; salva i suoi dati in un formato &XML; chiaro. </para>
</listitem>
<listitem>
<para
>&kig; supporta la costruzione di luoghi. </para>
</listitem>
<listitem>
<para
>&kig; permette di esportare un file di &kig; in formati interessanti, come immagini, file di <application
>XFig</application
> e di <application
>LaTeX</application
> e immagini vettoriali <acronym
>SVG</acronym
>. Ciò è piuttosto utile, dato che non tutti i programmi supportano già il formato di file di &kig;. </para>
</listitem>
<listitem>
<para
>&kig; ha un sistema flessibile per le trasformazioni. </para>
</listitem>
<listitem>
<para
>&kig; mira ad essere compatibile con i suoi concorrenti. È la ragione per cui supporta il formato di file di &kgeo;, quello di &kseg; e parzialmente quello di &drgeo; e quello di &cabri;; inoltre è stato programmato il supporto per altri formati. </para>
</listitem>
</itemizedlist>
</chapter>


<chapter id="faq">
<title
>Domande e risposte</title>
<para
>&reporting.bugs;</para
> <para
>&updating.documentation;</para
> </chapter>


<chapter id="credits">
<title
>Ringraziamenti e licenza</title>

<para
>&kig; </para>
<para
>Copyright di &kig; 2002-2004 Dominique Devriese <email
>devriese@kde.org</email
> </para>

<para
>Copyright della documentazione 2002-2004 Dominique Devriese <email
>devriese@kde.org</email
> </para>

<para
>Copyright della documentazione 2004-2005 Pino Toscano <email
>toscano.pino@tiscali.it</email
> </para>

<para
>Riveduta da &Philip.Rodrigues; &Philip.Rodrigues.mail;. </para>
<para
>Traduzione italiana di Pino Toscano <email
>toscano.pino@tiscali.it</email
></para
> 
&underFDL; &underGPL; </chapter>

<appendix id="installation">
<title
>Installazione</title>

<sect1 id="getting-kig">
<title
>Come ottenere &kig;</title>
&install.intro.documentation; </sect1>

<sect1 id="compilation">
<title
>Compilazione e installazione</title>
&install.compile.documentation; </sect1>

</appendix>

<appendix id="contributing">
<title
>Contribuire</title>
<section id="kig-is-free">
<title
>Software Libero</title>
<para
>&kig; è <ulink url="http://www.gnu.org/philosophy/philosophy.html#AboutFreeSoftware"
>software libero</ulink
>. Ciò significa che il suo codice sorgente è liberamente disponibile su internet, e ognuno può usarlo, leggerlo, modificarlo, e distribuirlo. Io sviluppo &kig; come hobby, e ho già imparato molto su programmazione, C++, &kde;/&Qt;, matematica, collaborazioni tra i gruppi di sviluppo software e progetti open source durante lo sviluppo. </para>
</section>

<section id="contribute-to-kig">
<title
>Contribuire</title>
<para
>Lo scopo di questo capitolo è di illustrare a te (l'utente) i diritti che la licenza di &kig; ti da. Come con tutti i software liberi, puoi liberamente risolvere i problemi incontrati durante l'uso (e sei incoraggiato a farlo), ad aggiungere caratteristiche mancanti, a distribuire il tuo programma modificato, e ad inviare queste modifiche a me all'indirizzo <email
>toscano.pino@tiscali.it</email
>, affinché possa includerle nella prossima versione, cosicché gli altri ne possano usufruire. Nota che personalmente non ho interessi finanziari di nessun genere in questo progetto. </para>
<para
>Se hai dubbi sui tuoi diritti ad usare questo software, o quelli di altre persone ad usufruire delle modifiche che hai fatto a questo programma, &etc;, leggi la licenza. Puoi trovarla nel file <filename
>COPYING</filename
> nei sorgenti di &kig; o nella scheda <guilabel
>Accordo di licenza</guilabel
> nella finestra di dialogo <guilabel
>Informazioni su Kig</guilabel
>. </para>
</section>

<section id="howto-contribute">
<title
>Come contribuire?</title>
<para
>Qualsiasi contributo è ben accetto. Se non ti piacciono le icone, o pensi che il manuale debba essere aggiornato, o se hai una bella macro che vuoi condividere con il mondo, non esitare a mandar ciò a me. Nota che i contributi verranno distribuiti sotto i termini della licenza &GNU; <acronym
>GPL</acronym
>; puoi trovare i termini di questa licenza nel file <filename
>COPYING</filename
> nei sorgenti di &kig;, e nel capitolo <link linkend="credits"
>Ringraziamenti e licenza</link
> in questo manuale. </para>
</section>
</appendix>

&documentation.index;
</book>
<!--
Local Variables:
mode: xml
End:
-->