[successivo] [precedente] [inizio] [fine] [indice generale]


Sezione 1.   Guida elementare

In questa sezione vengono illustate alcune delle possibilità del programma eukleides, degli script euk2eps e euk2edit e del programma xeukleides.

1.1   Disegno di un triangolo

Il linguaggio Eukleides è stato progettato per essere simile al linguaggio tradizionale della geometria piana euclidea. Ad esempio, per disegnare un triangolo è sufficiente preparare un file contenente il listato 1.2: se il file si chiama triangle.euk, ecco come si potrebbe procedere:

eukleides triangle.euk[Invio]

% Generated by eukleides 0.9.2
\psset{linecolor=black, linewidth=.5pt, arrowsize=2pt 4}
\psset{unit=1.0000cm}
\pspicture*(-2.0000,-2.0000)(8.0000,6.0000)
\pspolygon(0.0000,0.0000)(6.0000,0.0000)(2.2500,3.6742)
\endpspicture

L'output così generato può essere copiato così com'è in un sorgente TeX oppure LaTeX, ricordandosi però di includere anche il pacchetto pstricks. Il documento generato conterrà la figura 1.3.

Listato 1.2. Eukleides: esempio elementare.

A B C triangle
draw(A, B, C)

Figura 1.3.

A B C triangle; draw(A, B, C)

Per ottenere più rapidamente una figura da visualizzare si può ricorrere allo script euk2eps il quale genera un file in formato EPS che a sua volta è visualizzabile tramite (ad esempio) GV. Esiste inoltre lo script euk2edit il quale, appoggiandosi a Pstoedit, consente la conversione in vari formati grafici vettoriali come ad esempio quello utilizzato dal programma XFig; per esempio, per poter successivamente modificare con XFig l'immagine è sufficiente procedere come segue:

euk2edit triangle.euk fig[Invio]

This is eukleides version 0.9.2
Copyright (c) Christian Obrecht 2000-2002
==> Warning: BoundingBox not found!
pstoedit: version 3.33 / DLL interface 108 (build Jul 29 2004 - release build) :
 Copyright (C) 1993 - 2003 Wolfgang Glunz
Warning: some types of raster images in the input file cannot be converted if th
e output is sent to standard output
Warning: Level 2 version of image and imagemask not supported for this backend (
due to lack of support for FILE files)
Interpreter finished. Return status 0

cat triangle.fig[Invio]

#FIG 3.2
Portrait
Flush left
Inches
Letter
100.00
Single
0
1200 2
# polyline
2 1 0 1 0 0 999 0 -1 4.0 0 0 0 0 0 5
        2675 3166 2143 4033 4978 4033 3206 2298 2675 3166

Spesso risulta più comodo avere un singolo file che contenga sia testo che figure; in tal caso è possibile utilizzare l'opzione -f e i commenti speciali %--eukleides e %--end nel sorgente TeX oppure LaTeX. Ad esempio:

cat triangle.etex[Invio]

\input pstricks
This is a scalene triangle:\par
%--eukleides
A B C triangle
draw(A, B, C)
%--end
\bye

eukleides -f triangle.etex > triangle.tex[Invio]

cat triangle.tex[Invio]

\input pstricks
This is a scalene triangle:\par
% Generated by eukleides 0.9.2
\psset{linecolor=black, linewidth=.5pt, arrowsize=2pt 4}
\psset{unit=1.0000cm}
\pspicture*(-2.0000,-2.0000)(8.0000,6.0000)
\pspolygon(0.0000,0.0000)(6.0000,0.0000)(2.2500,3.6742)
\endpspicture
% End of figure
\bye

Dal file triangle.tex è quindi possibile ottenere un file in formato DVI e quindi uno in formato PostScript:

tex triangle.tex[Invio]

This is TeX, Version 3.14159 (Web2C 7.4.5)
(./triangle.tex (/usr/share/texmf/tex/generic/pstricks/pstricks.tex
`PSTricks' v97 patch 14  <1999/12/23> (tvz)
(/usr/share/texmf/tex/generic/pstricks/pstricks.con)) [1] )
Output written on triangle.dvi (1 page, 740 bytes).
Transcript written on triangle.log.

dvips -o triangle.ps triangle[Invio]

This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com)
' TeX output 2006.02.05:2049' -> triangle.ps
<texc.pro><pstricks.pro><pst-dots.pro><f7b6d320.enc><texps.pro><special.pro>
. <cmr10.pfb>[1] 

1.2   Ulteriori informazioni sui triangoli. Programma frontale interattivo

Il programma per X xeukleides è un programma frontale interattivo per il linguaggio Eukleides. Ha due modalità di funzionamento:

  1. modalità di modifica,

  2. modalità di presentazione.

Volendo avviare xeukleides e subito modificare il file di cui alla sezione 1.1, si digiti:

xeukleides triangle.euk[Invio]

Volendo invece avviare il programma in modalità di presentazione, è sufficiente aggiungere l'opzione -V alla riga di comando. Per alternare fra le due modalità si utilizi il tasto [Esc] (figura 1.10). Siccome la modalità di modifica è realizzata grazie alle funzionalità per la modifica del testo offerte dalle librerie GTK+, xeukleides possiede tutte le caratteristiche normalmente offerte da un semplice editor di testo; la tabella 1.11 elenca alcune utili scorciatoie.

Figura 1.10. xeukleides: le due modalità di funzionamento (modifica e presentazione).

xeukleides (modifica) xeukleides (presentazione)

Tabella 1.11. xeukleides: comandi utilizzabili nella modalità di modifica.

Comando Descrizione
[Alt F] Muove il cursore in avanti di una parola
[Alt B] Muove il cursore indietro di una parola
[Alt D] Cancella il testo fino alla fine della parola corrente
[Ctrl W] Cancella il testo fino all'inizio della parola corrente
[Ctrl U] Cancella il contenuto della riga corrente
[Ctrl K] Cancella il testo fino alla fine della riga corrente
[Ctrl X] Taglia il testo selezionato
[Ctrl C] Copia il testo selezionato
[Ctrl V] Incolla il testo selezionato

Il triangolo definito dal comando A B C triangle è un triangolo scaleno ottimale (ossia: un triangolo acutangolo la cui forma si discosta il più possibile sia da quella di un triangolo isoscele che da quella di un triangolo rettangolo). È ovviamentre possibile disegnare altri tipi di triangolo: il linguaggio Eukleides permette di definire i triangoli in molti modi; per esempio, la figura 1.12 illustra ciò che si ottiene sostituendo il comando triangle con il comando isosceles oppure equilateral oppure right.

Figura 1.12. Eukleides: triangolo iscoscele, triangolo equilatero, triangolo rettangolo.

A B C isosceles; draw(A, B, C) A B C equilateral; draw(A, B, C) A B C right; draw(A, B, C)

I suddetti comandi possono eventualmente accettare dei parametri opzionali, ad esempio A B C triangle(6, 5, 4) definisce un trinagolo ABC tale che i lati AB, BC e AC misurino rispettivamente 6 cm, 5 cm e 4 cm. Altro esempio: A B C isosceles(6, 50:) definisce un triangolo isoscele ABC tale che la base AB misuri 6 cm e gli angoli alla base misurino entrambi 50°.

1.3   Una proprietà dei parallelogrammi

In questa sezione si mostra come generare la figura 1.13.

Figura 1.13. Eukleides: le diagonali di un parallelogrammo si bisecano vicendevolmente.

Una proprietà dei parallelogrammi

Per prima cosa è necessario definire il parallelogrammo e il suo centro:

      1 A B C D parallelogram
      2 O = barycenter(A, B, C, D)

poi si possono disegnare entrambi:

      3 draw(A, B, C, D) ; draw(O)

poi si disegnano le diagonali:

      4 draw(segment(A, C), dotted)
      5 draw(segment(B, D), dotted)

e infine si marcano le semidiagonali con dei doppi tratti:

      6 mark(segment(O, A), double)
      7 mark(segment(O, C), double)

e delle croci:

      8 mark(segment(O, B), cross)
      9 mark(segment(O, D), cross)

1.4   Una proprietà dei triangoli. Geometria interattiva

In questa sezione verrà introdotto un esempio di figura interattiva, tramite la quale si «dimostrerà» che un triangolo inscritto in una semicirconferenza è necessariamente rettangolo. Nella figura sarà possibile spostare il vertice che giace sulla semicirconferenza utilizzando i tasti [freccia destra] e [freccia sinistra].

Per prima cosa si definiscono i punti A e B e la circonferenza C di diametro AB, con i seguenti comandi:

      1 A = point(0, 0) ; B = point(6, 0)
      2 C = circle(A, B)

I punti A e B sono definiti tramite le loro coordinate cartesiane.(1) Successivamente si definisce una variabile interattiva, t:

      3 t interactive(60, -2, 0, 180, "A", right)

Ciò significa che il valore iniziale di t è 60, il valore minimo è zero e il valore massimo è 180. In modalità di presentazione, ogniqualvolta si preme uno dei tasti [freccia destra] o [freccia sinstra] il valore -2 viene addizionato o sottratto (rispettivamente) alla variabile. Indicando up al posto di right si associa la variabile ai tasti [freccia su] e [freccia giù]. Infine, "A" indica lo stato interno corrispondente alla variabile.(2)

Successivamente si definisce un punto M sulla circonferenza C:

      4 M = point(C, t:)

Il secondo parametro è seguito dal simbolo di due punti (:) per indicare che si tratta di un parametro angolare: la variabile t corrisponde all'argomento(3) (seconda coordinata polare) del punto M rispetto al polo posto nel centro di C.

Dopodiché si disegna la semicirconferenza superiore di C e il triangolo ABM inscritto:

      5 color(lightgray)
      6 draw(C, 0:, 180:)
      7 color(black)
      8 draw(A, B, M)

Infine si marca l'angolo con vertice in M come retto:

      9 mark(A, M, B, right)

La figura 1.24 illustra il risultato finale.

Figura 1.24. Eukleides: un triangolo inscritto in una semicirconferenza è necessariamente un triangolo rettangolo.

Un triangolo inscritto in una semicirconferenza

È ora possibile interagire con la figura, grazie al programma xeukleides, utilizzando i tasti freccia, e constatare infine graficamente la validità della congettura geometrica enunciata all'inizio (figura 1.25).

Figura 1.25. Eukleides: figure generate interattivamente tramite xeukleides.

t=60 t=72 t=84 t=96 t=108 t=120 t=132 t=144

Se si preme il tasto [F1] in modalità di presentazione si «cattura» il valore modificato della variabile interattiva: esso costituirà il nuovo valore iniziale della variabile, e il programma passa automaticamente alla modalità di modifica.

Il codice scritto per xeukleides può essere utilizzato come sorgente per eukleides: le eventuali variabili interattive assumeranno staticamente il loro valore iniziale.


Informatica per sopravvivere 2006.02.18 --- Copyright © 2004-2006 Massimo Piai -- <pxam67 (ad) virgilio·it>


1) Salvo quando diversamente specificato, la figura viene disegnata all'interno di un riquadro il cui vertice inferiore sinistro ha coordinate (-2;-2) e quello superiore destro coordinate (8;6).

2) Quando si entra in modalità di presentazione il programma è nello stato "A"; essendoci 26 lettere da "A" a "Z" si possono definire 52 variabili interattive per la medesima figura (ogni stato può essere associato a due variabili, una per ciascuna coppia di tasti freccia); per cambiare stato basta premere il corrispondente tasto alfabetico.

3) in gradi


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome guida_elementare.html

[successivo] [precedente] [inizio] [fine] [indice generale]

Valid ISO-HTML!

CSS validator!