[successivo] [precedente] [inizio] [fine] [indice generale] [indice analitico] [parte]
Eukleides(1) è un mini-linguaggio grafico per la geometria euclidea. Associati a Eukleides esistono due programmi principali:
eukleides, un compilatore che permette il disegno di figure geometriche all'interno di documenti TeX oppure LaTeX, utile anche per convertire tali figure in formato EPS o in altri formati grafici vettoriali;
xeukleides, un programma frontale per X che consente la creazione di figure geometriche interattive, utile anche per la modifica e la messa a punto del codice sorgente Eukleides.
Eukleides è stato progettato in modo da essere simile al linguaggio naturale della geometria euclidea elementare. Molto spesso è possibile evitare completamente l'utilizzo delle coordinate cartesiane. Nelle sezioni 7.4 e 7.5 vengono mostrati molti esempi che illustrano questa e altre caratteristiche del linguaggio.
Il linguaggio Eukleides e i programmi eukleides e xeukleides sono opera di Christian Obrecht, <obrecht (ad) altern·org>.
Inoltre, si noti che Alml (il sistema di composizione SGML di Daniele Giacomini) offre supporto - a partire dall'estate 2005 - per il linguaggio Eukleides.
In questa sezione vengono illustate alcune delle possibilità del programma eukleides, degli script euk2eps e euk2edit e del programma xeukleides.
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 7.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 7.3.
|
|
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] |
$
Il programma per X xeukleides è un programma frontale interattivo per il linguaggio Eukleides. Ha due modalità di funzionamento:
modalità di modifica,
modalità di presentazione.
Volendo avviare xeukleides e subito modificare il file di cui alla sezione 7.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 7.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 7.11 elenca alcune utili scorciatoie.
|
|
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 7.12 illustra ciò che si ottiene sostituendo il comando triangle con il comando isosceles oppure equilateral oppure right.
|
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°.
In questa sezione si mostra come generare la figura 7.13.
|
Per prima cosa è necessario definire il parallelogrammo e il suo centro:
|
poi si possono disegnare entrambi:
|
poi si disegnano le diagonali:
|
e infine si marcano le semidiagonali con dei doppi tratti:
|
e delle croci:
|
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:
|
I punti A e B sono definiti tramite le loro coordinate cartesiane.(2) Successivamente si definisce una variabile interattiva, t:
|
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.(3)
Successivamente si definisce un punto M sulla circonferenza C:
|
Il secondo parametro è seguito dal simbolo di due punti (:) per indicare che si tratta di un parametro angolare: la variabile t corrisponde all'argomento(4) (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:
|
Infine si marca l'angolo con vertice in M come retto:
|
La figura 7.24 illustra il risultato finale.
|
È 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 7.25).
|
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.
In questa sezione si descrive sistematicamente il linguaggio Eukleides.
Un file sorgente Eukleides può contenere:
commenti, ossia tutti i caratteri dal simbolo % alla fine della riga;
assegnamenti semplici, ossia un nome di variabile seguito da un simbolo = e da un'espressione;
assegnamenti multipli, ossia una sequenza di nomi di variabile, separata da spazi, seguita (senza =) da un comando di assegnamento multiplo (assegnamento di un triangolo, di un poligono, di intersezione, ecc.);
assegnamenti interattivi, ossia un nome di variabile seguito dalla parola chiave interactive assieme ad alcuni parametri;
comandi grafici, ossia comandi per l'impostazione dei parametri, comandi di disegno oppure comandi di tracciamento.
I nomi di variabile sono alfanumerici e sensibili alla differenza tra le lettere maiuscole e minuscole; il primo carattere deve essere una lettera. Le variabili possono contenere vari tipi di oggetto: numeri, vettori, rette, segmenti, circonferenze, sezioni coniche. Una singola riga del sorgente può contenere diversi comandi o assegnamenti (separati da ;).
In questa sezione varranno alcune notazioni convenzionali nella descrizione dei parametri dei comandi:
x, y, z: numeri;
a, b: parametri angolari;
A, B, C, D, E, F, G: punti;
u, v: vettori;
l, l′: rette;
s: un segmento;
c, c′: circonferenze;
sc: una sezione conica;
str: una stringa;
f, f′: indicatori.
Un parametro angolare è un'espressione numerica seguita dal simbolo : (per indicare gradi sessagesimali) oppure dal simbolo < (per indicare gradi radianti). Un stringa è una singola riga di testo fra doppi apici.(5)
I parametri opzionali verranno indicati fra parentesi quadre.
È inoltre opportuno fare alcune precisazioni di carattere terminologico. Nel seguito si utilizzerà la parola «ascissa» in diversi contesti: il significato probabilmente più comune è quello di «prima coordinata in un piano cartesiano», ma il significato più generale è quello di «numero che indica (univocamente a meno di casi singolari) la posizione di un punto su una curva»; in quest'ultima definizione rientra in realtà anche il primo caso (se si identifica l'ascissa del punto con l'ascissa della sua proiezione sull'asse delle ascisse, e si considera che sull'asse delle ascisse viene fissata per l'appunto convenzionalemnte un'ascissa), nonché il caso della rappresentazione parametrica di una curva piana. Un'altra osservazione è opportuna riguardo al termine «argomento»: in un lavoro di carattere informatico si tenderebbe ad attribuire ad esso il significato di «parametro attuale passato a una procedura o funzione», e talvolta anche nella presente sezione varrà tale significato; però, parlando di geometria, esiste un'altra possibilità, ossia quella di «seconda coordinata in un piano su cui sia stato fissato un sistema di riferimento polare». Si ritiene che il contesto dovrebbe chiarire implicitamente il significato adottato di volta in volta; in caso contrario si specificherà esplicitamente. |
Sono disponibili le usuali operazioni matematiche, mediante i simboli: (, ), +, -, *, /, ^ (elevamento a potenza).
Le funzioni numeriche disponibili sono: abs(), sqrt(), exp(), ln(), sin(), cos(), tan(), asin(), acos(), atan(), deg() (per convertire da radianti a gradi...), rad() (... e viceversa).
È disponibile la costante pi.
La tabella 7.26 riepiloga le ulteriori funzioni che restituiscono valori numerici.
|
Ci sono inoltre alcune funzioni (tabella 7.27) che restituiscono la misura di un angolo.(6) Gli angoli vanno intesi in senso generalizzato, pertanto angle() restituisce valori compresi fra -180° (escluso) e 180° (compreso).
|
Il calcolo vettoriale è possibile attraverso i simboli: (, ), +, -, * (moltiplicazione per un numero oppure prodotto scalare di due vettori), / (divisione per un numero).
La tabella 7.28 riepiloga le funzioni che restituiscono un vettore.
|
La tabella 7.29 riepiloga le funzioni che restituiscono dei punti.
|
Eukleides rappresenta internamente le linee rette mediante un'ascissa, un'ordinata e un angolo che ne indica l'inclinazione secondo un sistema di riferimento polare (argomento), sicché le rette possiedono un'orientazione implicita. La tabella 7.2.5 riepiloga tutte le funzioni che restituiscono una retta.
|
Eukleides rappresenta internamente i segmenti mediante i suoi estremi, pertanto i segmenti possiedono un'orientazione implicita. La tabella 7.31 riepiloga le funzioni che restituiscono un segmento.
|
La tabella 7.32 riepiloga le funzioni che restituiscono una circonferenza.
|
Ci sono inoltre i due assegnamenti multipli descritti nella tabella 7.33.
|
La tabella 7.34 riepiloga le funzioni che restituiscono delle sezioni coniche.
|
La tabella 7.35 riepiloga alcuni assegamenti multipli che coinvolgono sezioni coniche.
|
Un assegnamento di un triangolo è costituito da una lista di tre nomi di variabile seguita da una delle parole chiave triangle, right, isosceles oppure equilateral più alcuni parametri opzionali. Se alla prima variabile è già stato assegnato un punto allora il triangolo viene costruito a partire da tale punto, altrimenti si parte dall'origine. Il paramentro opzionale b è l'argomento del segmento AB (valore predefinito: 0°).
Nella tabella 7.36 vengono illustrati i vari modi per definire un triangolo.
|
Un assegnamento di un quadrilatero è costituito da una lista di quattro nomi di variabile seguita da una delle parole chiave parallelogram, rectangle oppure square più alcuni parametri opzionali. Se alla prima variabile è di già stato assegnato un punto allora il quadrilatero viene costruito a partire da tale punto, altrimenti si parte dall'origine. Il paramentro opzionale b è l'argomento del segmento AB (valore predefinito: 0°).
Nella tabella 7.37 vengono illustrati i vari modi per definire un quadrilatero.
|
Esistono inoltre l'assegnamento di un pentagono o di un esagono (tabella 7.38).
|
Un assegnamento interattivo è fatto così:
x interactive(y, z[, x′, x″,] str, f) |
Per eukleides tale assegnamento equivale a x = y; usando xeukleides esso permette di modificare il valore di x dalla modalità di presentazione mediante i tasti freccia. Il valore iniziale di x è y e l'incremento è z. I parametri opzionali x′ e x″ stabiliscono il minimo e il massimo per x. La stringa str deve consistere di un singolo carattere alfabetico maiuscolo: per modificare x si deve premere per prima cosa il tasto alfabetico corrispondente.(7) I valori possibili per f sono right (nel qual caso x viene incrementato alla pressione del tasto [freccia destra] e decrementato alla pressione del tasto [freccia sinistra]) oppure up (nel qual caso x viene incrementato alla pressione del tasto [freccia su] e decrementato alla pressione del tasto [freccia giù]).
La tabella 7.39 riepiloga comandi di impostazione.
La tabella 7.40 riepiloga comandi di disegno.
|
Un comando di tracciamento permette di disegnare un luogo geometrico al variare di un parametro. Ecco la sintassi:
trace(x, x′, x″[, f]) |
Il comando deve essere seguito da almeno un'espressione che restituisca un punto, inclusa fra parentesi graffe; l'espressione deve dipendere dalla variabile x. I paramteri x′ e x″ denotano rispettivamente il minimo e il massimo per x. L'espressione deve essere definita in tutto l'intevallo, altrimenti si possono ottenere risultati incoerenti o a volte (con eukleides) dei messaggi di errore. All'interno delle parentesi graffe, al fine di eseguire calcoli intermedi, è possibile far precedere qualsiasi successione di comandi all'espressione. Specificando f si può modificare lo stile corrente: i valori ammessi sono full, dashed e dotted.
Il programma eukleides permette di includere dei comandi del pacchetto di macro pstricks utilizzando parametri gestiti da eukleides stesso. L'utilizzo probabilmente più opportuno di questa funzionalità è quello di disegnare degli oggetti pstricks con coordinate generate da una costruzione in linguaggio Eukleides.
La sintassi è ragionevolmente simile a quella che si utilizza nell'inserire codice pstricks in un documento TeX o LaTeX. L'invocazione di una macro di pstricks inizia con il simbolo \ e prosegue con il nome della macro stessa (ad esempio: pscircle). Può esserci anche una lista di opzioni per la macro, inclusa fra parentesi quadre, e anche una lista di parametri fra parentesi tonde. Un semplice esempio è presentato nel listato 7.41 e nella corrispondente figura 7.42; nel seguito varranno date spiegazioni più dettagliate.
|
|
Le eventuali opzioni devono essere specificate nella forma
opzione=valore |
dove opzione è un'opzione prevista da pstricks e valore può essere una stringa fra doppi apici (ad esempio: arrows="->") oppure un espressione numerica di Eukleides (ad esempio: radius=distance(A,B)). I doppi apici verranno eliminati dal programma prima dell'emissione del codice pstricks.
Tutte le opzioni di pstricks che siano documentate dovrebbero funzionare senza il bisogno di includerle fra doppi apici, ma in caso di problemi è possibile farlo (ad esempio: "parametroStrano"=3.145). |
A titolo di esempio, si considerino il listato 7.43 e la corrispondente figura 7.44 (che modificano lievemente il listato 7.41 e la figura 7.42, rispettivamente).
|
|
I parametri da passare alle macro di pstricks devono essere specificati come una lista, separata da virgole, di espressioni che restituiscano punti oppure valori numerici o di stringhe fra doppi apici. I punti vengono trasformati nella forma (x,y) e le stringhe fra doppi apici e le espressioni numeriche vengono inserite all'interno delle parentesi graffe; ad esempio, il comando \psline("<<->>", A, B) viene tradotto nel codice pstricks seguente:
|
Le indicazioni qui fornite non pretendono minimamente di essere una spiegazione - nemmeno superficiale - del funzionamento del pacchetto di macro pstricks. Per maggiori informazioni si veda la sezione 7.6. Inoltre, si tenga presente che non viene effettuato nessun controllo sul codice pstricks che viene generato da eukleides, il che significa che è possibile generare codice TeX sintatticamente scorretto se si utilizza questa caratteristrica di eukleides. Infine si noti che al momento della presente stesura xeukleides ignora completamente le macro pstricks. |
Le limitazioni principali di Eukleides sono probabilmente:
il basso livello di interattività del programma frontale xeukleides, e
la mancanza di strutture sintattiche più evolute (cicli, sottoprogrammi, ecc...) nel linguaggio vero e proprio.
Per quanto riguarda il primo punto, la questione è complessa e si potrebbe inquadrare più nell'ambito delle scelte metodologiche che in quello dei compromessi tecnologici. In effetti esistono già diversi programmi che permettono di «fare geometria dinamica», nel senso che permettono all'utente di costruire e modificare gli oggetti geometrici essenzialmente «a colpi di mouse»: non è questa la sede per aprire una discussione sulla presunta opportunità didattica di strumenti di questo tipo (basti notare che al riguardo le diverse opinioni dei docenti di matematica sono largamente divergenti); fatto sta che la scelta dell'autore di Eukleides (egli stesso insegnante liceale di matematica in Francia) è stata diversa:
As a mathematics teacher in a French high school, I have to compose a rather large number of documents for my students, containing both text and formulas. In my point of view, LaTeX is the best tool in such a situation, combining efficiency and high quality. Very often, these documents should be illustrated with geometric figures. I first used the excellent pstrick package to draw them. I didn't want to use WYSIWYG software instead, because I wanted to keep following TeX's philosophy, that is: What You Mean Is What You Get. Unfortunately, pstrick isn't designed for geometry at all and is rather inappropriate in many situations.
One night, I wanted to draw a triangle with an inscribed circle, so I had to compute by hand the coordinates of the center and the radius of this circle, which is quite boring. During these calculations, I realized that they could easily be done by a computer, and that gave me the idea to create Eukleides, a geometry drawing language. My goal was to make it as close as possible to what mathematics teachers would say to describe geometric figures.(8)
[...]
Sembra quindi che lo scopo principale di Eukleides sia quello di (facilitare la e) invitare alla descrizione verbale delle figure geometriche, piuttosto che coltivare un'attività semi-ludica di modifica interattiva delle figure stesse (cosa comunque praticamente possibile, anche se «senza mouse», grazie agli assegnamenti interattivi, v. sezione 7.2.11). Peraltro, avere a che fare con un software orientato alla descrizione offre anche tutta una serie di indiscutibili vantaggi (come si cercherà di dimostrare nel seguito).
Riguardo al secondo punto (fermo restando che le future versioni di Eukleides conterranno dei decisi miglioramenti in questo senso), proprio grazie alla natura descrittivo-testuale del software in oggetto è possibile «estendere» le funzionalità del linguaggio utilizzando la flessibilità offerta dai diversi linguaggi di programmazione. Si consideri ad esempio il seguente enunciato: «Sia dato un segmento e un punto su di esso; si costruiscano - sulle due parti del segmento così definite - due triangoli equilateri dalla stessa parte del piano rispetto al segmento, e si consideri il segmento avente per estremi i vertici non giacenti sul segmento dato; il punto medio di tale segmento descrive - al variare del punto dato - un segmento su una retta parallela al segmento dato». Per tentare di fornire una «dimostrazione dinamica» dell'enunciato, si parta dal caso particolare fornito dal listato 7.46 e dalla figura 7.47.
|
|
Naturalmente, una «dimostrazione dinamica» richiede di poter disegnare un gran numero di casi particolari simili a quello illustrato, mettendo così in evidenza la limitazione di Eukleides legata al non poter definire cicli enumerativi. Tuttavia, utilizzando dei linguaggi di programmazione esterni, è abbastanza semplice arrivare a figure come la 7.48.
|
Per realizzare tale figura, si è utilizzato il programma eukloop.sh (il programma dovrebbe essere disponibile qui: <allegati/xs/eukloop_sh>), a partire dai file 2triloc.eukt
e 2triseq.eukt
. Ecco come si procede:
$
echo "frame(-1,-16,28,6,0.5)" > 2tri.euk ; echo "thickness(3)" >> 2tri.euk
[Invio]
$
eukloop.sh
[Invio]
create symbolic link `eukloop1.sh' to `eukloop.sh' create symbolic link `eukloop2.sh' to `eukloop.sh' |
$
cat 2triloc.eukt
[Invio]
y = <COUNTER1> H = point(0,-7*y+3*3^(1/2)/2) color(red) style(dotted) draw(line(H,0:)) color(black) style(full) |
$
cat 2triloc.eukt | eukloop1.sh 0 1 2 >> 2tri.euk
[Invio]
$
cat 2triseq.eukt
[Invio]
x = <COUNTER2> y = <COUNTER1> A = point(7*x,-7*y) AM = 4/11*x+16/11*y+1 MB = 6-AM A M I equilateral(AM) M B J equilateral(MB) draw(A,M,I) ; draw(M,B,J) color(lightgray) draw(segment(I,J)) color(black) draw(AM,"%.1f",segment(A,M),-90:) draw(MB,"%.1f",segment(M,B),-90:) color(blue) draw(barycenter(I,J)) color(black) |
$
cat 2triseq.eukt | eukloop2.sh 0 1 2 0 1 3 >> 2tri.euk
[Invio]
$
Il file 2tri.euk
dovrebbe essere disponibile qui: <allegati/xs/2tri_euk>): esso corrisponde esattamente alla figura 7.48.
Il funzionamento del programma eukloop.sh è molto semplice:(9) invocandolo con il suo nome esso crea due collegamenti simbolici a se stesso nella directory corrente, che verranno poi utilizzati nell'invocazione effettiva, ciascuno di essi corrispondendo a una differente modalità di utilizzo; il primo collegamento simbolico realizza una struttura ciclica enumerativa semplice, il secondo una composta da due cicli annidati; in pratica il programma converte un file in cui sia presente del codice Eukleides assieme alle metavariabili <COUNTER1> e <COUNTER2> in un file Eukleides ottenuto ripetendo il codice Eukleides e sostituendo alle metavariabili dei valori specifici ottenuti ciclicamente in conformità agli argomenti passati al programma; nel caso di eukloop1.sh i tre argomenti passati corrispondono rispettivamente al valore iniziale, all'incremento e al valore finale (e analogamente nel caso di eukloop2.sh, solo che in questo caso bisogna passare tre valori per ciascuna metavariabile, per un totale di sei argomenti); nel caso del ciclo doppio, il ciclo esterno corrisponde alla metavariabile <COUNTER1>, quello interno alla metavariabile <COUNTER2>.
Gli esempi presentati nella tabella 7.52 illustrano le caratteristiche fondamentali di Eukleides; nella sezione 7.5 vengono presentati degli esempi più avanzati.
|
Le figure presentate in questa sezione derivano dagli esempi inclusi nella distribuzione standard del pacchetto Debian.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Christian Obrecht, ΕϒΚΛΕΙΔΗΣ
TUG, Welcome to the PSTricks web site
X Consortium Inc., X Logical Font Description Conventions
Bill Casselman
Mathematical Illustrations
Pictures and Proofs
Visual Explanations reviewed by Bill Casselman
Alexander Bogomolny, Pythagorean Theorem and its many proofs
Informatica per sopravvivere 2006.02.19 --- Copyright © 2004-2006 Massimo Piai -- <pxam67 (ad) virgilio·it>
2) 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).
3) 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.
4) in gradi
5) Usando xeukleides, gli eventuali simboli $ presenti nelle stringhe vengono ignorati, allo scopo di migliorare la leggibilità della presentazione; per eukleides invece tali simboli delimitano del codice TeX che cerrà compilato e inserito nella figura.
6) in gradi
7) All'inizio lo stato predefinito è "A".
8) enfasi mia
9) ... per non dire rudimentale: si invita il lettore volenteroso ad estenderne le funzionalità, magari utilizzando un altro linguaggio di programmazione.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome geometria_euclidea_con_eukleides.html
[successivo] [precedente] [inizio] [fine] [indice generale] [indice analitico]