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


Sezione 2.   Guida di riferimento

In questa sezione si descrive sistematicamente il linguaggio Eukleides.

2.1   Sintassi

Un file sorgente Eukleides può contenere:

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:

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.(1)

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.

2.2   Valori numerici

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 2.1 riepiloga le ulteriori funzioni che restituiscono valori numerici.

Tabella 2.1. Eukleides: funzioni che restituiscono valori numerici.

Funzione Note esplicative
abscissa(A)
oppure
abscissa(u)
Ascissa (prima coordinata cartesiana) del punto o dell'estremo del vettore.
ordinate(A)
oppure
ordinate(u)
Ordinata (seconda coordinata cartesiana) del punto o dell'estremo del vettore.
distance(A, B)
oppure
distance(A, l)
Distanza fra due punti, oppure fra un punto e una retta.
length(u)
oppure
length(s)
Modulo di un vettore o lunghezza di un segmento.
radius(c)
Raggio di una circonferenza.
major(sc)
Il semiasse maggiore se sc è un'ellisse; il semiasse trasverso se sc è un'iperbole; il lato retto se sc è una parabola.
minor(sc)
Il semiasse minore se sc è un'ellisse; il semiasse non-trasverso se sc è un'iperbole; zero se sc è una parabola.
eccentricity(sc)
L'eccentricità di sc.
arg(sc, A)
Ascissa del punto A nella rappresentazione parametrica interna (vedi sezione 2.4) della sezione conica sc. Se A non giace su sc allora la funzione restituisce l'ascissa di una proiezione del punto sulla conica: la direzione della proiezione è quella dell'asse se sc è una parabola, quella del centro se sc è un'ellisse, quella dell'asse trasverso sc è un'iperbole.
height(A, B, C)
Distanza fra il punto B e la retta AC.

Ci sono inoltre alcune funzioni (tabella 2.2) che restituiscono la misura di un angolo.(2) Gli angoli vanno intesi in senso generalizzato, pertanto angle() restituisce valori compresi fra -180° (escluso) e 180° (compreso).

Tabella 2.2. Eukleides: funzioni che restituiscono misure di angoli.

Funzione Note esplicative
angle(u)
oppure
angle(l)
oppure
angle(s)
Argomento dell'oggetto (rispetto alla rappresentazione interna).
angle(sc)
Argomento dell'asse principale della conica sc.
angle(u, v)
Misura dell'angolo compreso fra i vettori u e v.
angle(A, B, C)
Misura dell'angolo ∠ABC. Si tratta dell'angolo definito dalla rotazione antioraria attorno al punto B che porta il punto A sulla retta BC, pertanto angle(A, B, C) + angle(C, B, A) vale 0°, tenuto conto del fatto che è necessario riportare le misure degli angoli nell'intervallo fra -180° e 180°.

2.3   Vettori

Il calcolo vettoriale è possibile attraverso i simboli: (, ), +, -, * (moltiplicazione per un numero oppure prodotto scalare di due vettori), / (divisione per un numero).

La tabella 2.3 riepiloga le funzioni che restituiscono un vettore.

Tabella 2.3. Eukleides: funzioni che restituiscono un vettore.

Funzione Note esplicative
vector(x, y)
Vettore definito tramite coordinate cartesiane.
vector(x, a)
Vettore definito tramite coordinate polari.
vector(A, B)
Vettore definito dal segmento orientato AB (ossia B-A).
vector(l)
Versore (vettore unitario) parallelo a l.
vector(s)
Vettore definito dal segmento s.
rotation(u, a)
Immagine del vettore u secondo la rotazione di ampiezza a.

2.4   Punti

La tabella 2.4 riepiloga le funzioni che restituiscono dei punti.

Tabella 2.4. Eukleides: funzioni che restituiscono dei punti.

Funzione Note esplicative
point(x, y)
Punto definito mediante coordinate cartesiane.
point(x, a)
Punto definito mediante coordinate polari.
point(l, x)
Punto di ascissa x lungo la retta l (in Eukleides le rette hanno una rappresentazione interna e quindi un'orientazione implicita, v. 2.5).
point(s, x)
Punto di ascissa x lungo la retta contenente il segmento s (come le rette anche i segmenti hanno una rappresentazione interna e un'orientazione implicita; l'origine delle ascisse è il primo estremo di s).
point(c, a)
Punto su c di argomento a (secondo l'usuale rappresentazione polare di c).
point(sc, x)
Punto su sc, ove x è l'ascissa del punto sulla curva secondo la rappresentazione parametrica interna di sc: per le parabole la rappresentazione si basa sulla funzione quadratica, per le ellissi sulle funzioni seno e coseno, per le iperboli sulle funzioni secante e tangente.
barycenter(A[, x], B[, y])
Baricentro del segmento AB con pesi degli estremi rispettivamente x e y (valori predefiniti: 1 e 1). Vale una sintassi analoga per tre oppure quattro punti.
intersection(l, l′)
Intersezione delle rette l e l′.
abscissa(l, x)
Punto di ascissa (prima coordinata cartesiana) x che appartiene alla retta l.
ordinate(l, y)
Punto di ordinata (seconda coordinata cartesiana) y che appartiene alla retta l.
midpoint(s)
Punto medio del segmento s.
begin(s)
Primo estremo del segmento s.
end(s)
Secondo estremo del segmento s.
center(c)
Centro della circonferenza c.
center(sc)
Centro della sezione conica sc. Se sc è una parabola allora restituisce il vertice.
orthocenter(A, B, C)
Ortocentro del triangolo ABC.
translation(A, u)
Immagine del punto A secondo la traslazione definita dal vettore u.
reflection(A, l)
Immagine del punto A secondo la simmetri assiale di asse l.
rotation(A, B[, a])
Immagine del punto A secondo la rotazione di centro B e ampiezza a (valore predefinito 180°).
homothecy(A, B, x)
Immagine del punto A secondo l'omotetia di centro B e rapporto x.
projection(A, l[, l′])
Proiezione del punto A sulla retta l lungo la direzione definita da l′ (direzione predefinita ortogonale a l).

2.5   Rette

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 2.5 riepiloga tutte le funzioni che restituiscono una retta.

Tabella 2.5. Eukleides: funzioni che restituiscono una retta.

Funzione Note esplicative
line(A, B)
Retta passante per A e B.
line(A, u)
Retta passante per A e diretta secondo il vettore u.
line(s)
Retta contenente il segmento s.
line(A, a)
Retta passante per A e argomento a.
line(c, a)
Retta tangente a c nel punto di argomento a (con polo coincidente con il centro di c).
line(sc, x)
Retta tangente a sc nel punto di ascissa x (rispetto alla rappresentazione parametrica interna di sc: per le parabole la rappresentazione si basa sulla funzione quadratica, per le ellissi sulle funzioni seno e coseno, per le iperboli sulle funzioni secante e tangente).
parallel(l, A)
oppure
parallel(s, A)
Retta passante per A e parallela a l (o a s).
perpendicular(l, A)
oppure
perpendicular(s, A)
Retta passante per A e ortogonale a l (o a s).
bisector(s)
Asse del segmento s.
bisector(A, B, C)
Bisettrice dell'angolo ∠ABC.
bisector(l, l′)
Bisettrice dell'angolo acuto formato da l e l′.
altitude(A, B, C)
Altezza del triangolo ABC passante per A.
median(A, B, C)
Mediana del triangolo ABC passante per A.
translation(l, u)
Immagine di l secondo la traslazione definita dal vettore u.
reflection(l, l′)
Immagine di l secondo la simmetria assiale di asse l′.
rotation(l, A[, a])
Immagine di l secondo la rotazione di centro A e ampiezza a (valore predefinito 180°).
homothecy(l, A, x)
Immagine di l secondo l'omotetia di centro A e rapporto x.

2.6   Segmenti

Eukleides rappresenta internamente i segmenti mediante i suoi estremi, pertanto i segmenti possiedono un'orientazione implicita. La tabella 2.6 riepiloga le funzioni che restituiscono un segmento.

Tabella 2.6. Eukleides: funzioni che restituiscono un segmento.

Funzione Note esplicative
segment(A, B)
Segmento di primo estremo A e secondo estremo B.
segment(A, u)
Segmento passante per A ed equipollente a u.
segment(A, x, a)
Segmento con primo estremo A, lunghezza x e argomento a.
segment(c, a)
Segmento con primo estremo nel centro di c e secondo estremo nel punto di c di argomento a (polo nel centro di c).
translation(s, u)
Immagine di s secondo la traslazione definita da u.
reflection(s, l)
Immagine di s secondo la simmetria assiale di asse l.
rotation(s, A[, a])
Immagine di s secondo la rotazione di centro A e ampiezza a (valore predefinito 180°).
homothecy(s, A, x)
Immagine di s secondo l'omotetia di centro A e rapporto x.

2.7   Circonferenze

La tabella 2.7 riepiloga le funzioni che restituiscono una circonferenza.

Tabella 2.7. Eukleides: funzioni che restituiscono una circonferenza.

Funzione Note esplicative
circle(A, B)
Circonferenza di diametro AB.
circle(A, B, C)
Circonferenza circoscritta al triangolo ABC.
circle(A, x)
Circonferenza di centro A e raggio x.
incircle(A, B, C)
Circonferenza inscritta nel triangolo ABC.
translation(c, u)
Immagine di c secondo la traslazione definita da u.
reflection(c, l)
Immagine di c secondo la simmetria assiale di asse l.
rotation(c, A[, a])
Immagine di c secondo la rotazione di centro A e ampiezza a (valore predefinito 180°).
homothecy(c, A, x)
Immagine di c secondo l'omotetia di centro A e rapporto x.

Ci sono inoltre i due assegnamenti multipli descritti nella tabella 2.8.

Tabella 2.8. Eukleides: assegnamenti che restituiscono le intersezioni relative a circonferenze e rette.

Assegnamento Note esplicative
A B intersection(l, c)
Se i due oggetti sono tangenti allora A e B denoteranno il medesimo punto.
A B intersection(c, c′)
Se i due oggetti sono tangenti allora A e B denoteranno il medesimo punto.

2.8   Sezioni coniche

La tabella 2.9 riepiloga le funzioni che restituiscono delle sezioni coniche.

Tabella 2.9. Eukleides: funzioni che restituiscono delle sezioni coniche.

Funzione Note esplicative
conic(A, l, x)
Sezione conica con fuoco A, direttrice l, eccentricità x.
conic(A, B, x)
Sezione conica con fuochi A e B. Il valore x è la semidistanza fra i vertici (ossia l'asse maggiore per le ellissi, l'asse trasverso per le iperboli).
parabola(A, l)
Parabola con fuoco A e direttrice l.
parabola(A, x, a)
Parabola con vertice A, con x pari al lato retto e a pari all'argomento dell'asse.
ellipse(A, x, y, a)
Ellisse con centro A, semiassi maggiore e minore x e y, argomento dell'asse principale pari a a.
hyperbola(A, x, y, a)
Iperbole con centro A, semiassi reale e immaginario x e y, argomento dell'asse principale pari a a.
translation(sc, u)
Immagine di sc secondo la traslazione definita da u.
reflection(sc, l)
Immagine di sc secondo la simmetria assiale di asse l.
rotation(sc, A[, a])
Immagine di sc secondo la rotazione di centro A e ampiezza a (valore predefinito 180°).
homothecy(sc, A, x)
Immagine di sc secondo l'omotetia di centro A e rapporto x.

La tabella 2.10 riepiloga alcuni assegamenti multipli che coinvolgono sezioni coniche.

Tabella 2.10. Eukleides: assegnamenti multipli che coinvolgono sezioni coniche.

Assegnamento Note esplicative
A B foci(sc)
Fuochi della sezione conica sc.
A B vertices(sc)
Vertici della sezione conica sc.
A B intersection(l, sc)
Punti di intersezione fra l e sc.

2.9   Triangoli

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 2.11 vengono illustrati i vari modi per definire un triangolo.

Tabella 2.11. Eukleides: i vari modi per definire un triangolo.

Assegnamento Note esplicative
A B C triangle[(x[, b])]
Definisce un triangolo scaleno tale che AB misuri x (valore predefinito: 6). Il triangolo scaleno è ottimale, ossia è un triangolo acutangolo la cui forma si discosti il più possibile da quella di un triangolo rettangolo o isoscele.
A B C triangle(x, y, z[, b])
Definisce un triangolo scaleno tale che AB misuri x, BC misuri y e AC misuri z.
A B C triangle(x, a, a′[, b])
Definisce un triangolo scaleno tale che AB misuri x, ∠BAC misuri a e ∠CBA misuri a′.
A B C right[(x, y[, b])]
Definisce un triangolo rettangolo in A tale che AB misuri x e AC misuri y (valori predefiniti: 6 e 4,5 rispettivamente).
A B C right(x, a[, b])
Definisce un triangolo rettangolo in B tale che AB misuri x e la misura di ∠BAC sia a.
A B C isosceles[(x, a[, b])]
Definisce un triangolo isoscele tale che la base AB misuri x e gli angoli alla base misurino a (valori predefiniti: 6 e 39° rispettivamente).
A B C isosceles(x, y[, b])
Definisce un triangolo isoscele tale che la base AB misuri x e i lati obliqui misurino y.
A B C equilateral[(x[, b])]
Definisce un triangolo equilatero di lato x (valore predefinito: 6).

2.10   Poligoni

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 2.12 vengono illustrati i vari modi per definire un quadrilatero.

Tabella 2.12. Eukleides: i vari modi per definire un quadrilatero.

Assegnamento Note esplicative
A B C D parallelogram[(x, y, a[, b])]
Definisce un parallelogrammo tale che AB misuri x, AD misuri y e l'angolo ∠BAD misuri a (valori predefiniti: 5, 4 e 75° rispettivamente).
A B C D parallelogram(u, v[, b])
Definisce un parallelogrammo tale che B-A = u e D-A = v.
A B C D rectangle[(x, y[, b])]
Definisce un rettangolo tale che AB misuri x e AD misuri y (valori predefiniti: 6 e 6/ϕ rispettivamente, ove ϕ è il rapporto aureo).
A B C D square[(x[, b])]
Definisce un quadrato di lato x (valore predefinito: 4).

Esistono inoltre l'assegnamento di un pentagono o di un esagono (tabella 2.13).

Tabella 2.13. Eukleides: assegnamenti per pentagoni e per esagoni.

Assegnamento Note esplicative
A B C D E pentagon(F, x, a)
Definisce un pentagono regolare di centro F, raggio x e tale che l'argomento di FA sia a.
A B C D E F pentagon(G, x, a)
Definisce un esagono regolare di centro G, raggio x e tale che l'argomento di GA sia a.

2.11   Assegnamenti interattivi

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.(3) 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ù]).

2.12   Comandi di impostazione

La tabella 2.14 riepiloga comandi di impostazione.

Tabella 2.14. Eukleides: comandi di impostazione.

Comando Note esplicative
{box | frame}(x, y, x′, y′[, z])
Con eukleides i due comandi hanno un effetto simile, ossia impostare il riquadro visibile. Il vertice inferiore sinistro ha coordinate cartesiane (x,y) e quello superiore destro coordinate (x′,y′) mentre il parametro opzionale imposta l'unità di misura a z cm (valore predefinito: 1).
Con xeukleides la figura viene disegnata utilizzando la scala massima che renda il riquadro inscritto nell'area di disegno. Il comando box imposta il riquadro visibile sicché la figura di solito appare con due strisce grigie ai lati. Il comando frame imposta il minimo riquadro visibile sicché viene utilizzata l'intera area di disegno. Il parametro z viene ignorato.
Il riquadro predefinito è: (-2, -2, 8, 6).
color(f)
Imposta il colore a f. I valori ammessi sono black (predefinito), darkgray, gray, lightgray, white, red, green, blue, cyan, magenta e yellow.
color str
Con eukleides imposta il colore a str (dev'essere un colore valido per pstricks). Con xeukleides non ha effetto.
thickness(x)
Con eukleides imposta lo spessore delle linee corrente a x pt (lo spessore predefinito è 0,5 pt). Con xeukleides non ha effetto.
style(f)
Imposta lo stile di disegno corrente a f. I valori ammessi sono full, dashed e dotted. Il valore predefinito è full.
tricks str
Con eukleides aggiunge in testa a str un carattere \ e emette il risultato. Deve trattarsi di codice TeX valido. Con xeukleides non ha effetto.
font str
Con xeukleides cambia la fonte corrente. La stringa str deve essere un valido nome XLFD (X Logical Font Description Conventions). Con eukleides non ha effetto.

2.13   Comandi di disegno

La tabella 2.15 riepiloga comandi di disegno.

Tabella 2.15. Eukleides: comandi di disegno.

Comando Note esplicative
draw(A[, f[, x]])
Disegna un punto A con forma definita da f e rapporto di scala definito da x (valore predefinito: 1). I valori ammessi per f sono dot, box, cross e plus (valore predefinito: dot). Il rapporto di scala non ha effetto con xeukleides.
draw(u, A[, f])
Disegna un vettore u con origine in A. Specificando f si può modificare lo stile corrente; i valori ammessi sono: full, dashed e dotted.
draw(l[, f[, f′]])
Disegna una retta. Specificando f o f′ si può modificare lo stile corrente: i valori ammessi per f sono full, dashed e dotted; i valori ammessi per f′ sono entire, halfline e backhalfline (valore predefinito: entire).
draw(s[, f[, f′]])
Disegna un segmento. Specificando f o f′ si può modificare lo stile corrente: i valori ammessi per f sono full, dashed e dotted; i valori ammessi per f′ sono noarrow, arrow, backarrow e doublearrow (valore predefinito: noarrow).
draw(c[, f])
Disegna una circonferenza. Specificando f si può modificare lo stile corrente: i valori ammessi sono full, dashed e dotted.
draw(c, a, a′[, f[, f′]])
Disegna arco della circonferenza c compreso fra i punti di coordinate polari angolari a e a′. Specificando f o f′ si può modificare lo stile corrente: i valori ammessi per f sono full, dashed e dotted; i valori ammessi per f′ sono noarrow, arrow, backarrow e doublearrow (valore predefinito: noarrow).
draw(sc[, f])
Disegna una sezione conica sc. Specificando f si può modificare lo stile corrente: i valori ammessi sono full, dashed e dotted.
draw(sc, x, y[, f])
Disegna un arco della sezione conica sc. I valori x e y denotano l'ascissa (relativamente alla rappresentazione parametrica interna di sc) degli estremi dell'arco. Specificando f si può modificare lo stile corrente: i valori ammessi sono full, dashed e dotted.
draw(A, B, C[, f])
Disegna il triangolo ABC. Specificando f si può modificare lo stile corrente: i valori ammessi sono full, dashed e dotted.
draw(A, B, C, D[, f])
Disegna il quadrilatero ABCD. Specificando f si può modificare lo stile corrente: i valori ammessi sono full, dashed e dotted.
draw(A, B, C, D, E[, f])
Disegna il pentagono ABCDE. Specificando f si può modificare lo stile corrente: i valori ammessi sono full, dashed e dotted.
draw(A, B, C, D, E, F[, f])
Disegna l'esagono ABCDEF. Specificando f si può modificare lo stile corrente: i valori ammessi sono full, dashed e dotted.
draw(str, A,[ x,] a)
Scrive il testo contenuto in str a una distanza x (valore predefinito: 0,3 cm) e con argomento a rispetto al polo A.
draw(str, s,[ x,] a)
Scrive il testo contenuto in str a una distanza x (valore predefinito: 0,3 cm) e con argomento a rispetto al punto medio del segmento s.
draw(x,[ str,] A,[ y,] a)
Scrive il valore di x, eventualmente secondo il formato definito da str (sintassi del linguaggio C), a una distanza y (valore predefinito 0,3 cm) e con argomento a rispetto al polo A.
draw(x,[ str,] s,[ y,] a)
Scrive il valore di x, eventualmente secondo il formato definito da str (sintassi del linguaggio C), a una distanza y (valore predefinito 0,3 cm) e con argomento a rispetto al punto medio del segmento s.
draw(x, x′, str, A,[ y,] a)
Scrive i valori di x e x′, eventualmente secondo il formato definito da str (sintassi del linguaggio C), a una distanza y (valore predefinito 0,3 cm) e con argomento a rispetto al polo A.
draw(x, x′, str, s,[ y,] a)
Scrive i valori di x e x′, eventualmente secondo il formato definito da str (sintassi del linguaggio C), a una distanza y (valore predefinito 0,3 cm) e con argomento a rispetto al punto medio del segmento s.
mark(s[, f[, x]])
Marca il segmento s con un simbolo definito da f usando un rapporto di scala x (valore predefinito: 1). I valori ammessi per f sono: simple, double, triple e cross.
mark(A, B, C[, f[, x]])
Marca l'angolo ∠ABC con un simbolo definito da f usando un rapporto di scala x (valore predefinito: 1). I valori ammessi per f sono: simple, double, triple, dashed (quest'ultimo produce una marcatore curvo con un tratto trasversale), right, dotted (quest'ultimo produce una marcatore di angolo retto con un punto al centro), arrow e backarrow (valore predefinito: simple).

2.14   Comandi di tracciamento

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.

2.15   «pstricks»

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 2.16 e nella corrispondente figura 2.17; nel seguito varranno date spiegazioni più dettagliate.

Listato 2.16. Eukleides: esempio elementare con pstricks.

A B C equilateral
draw(A, B, C, dotted)
\pscurve[arrows="->"](A, B, C)

Figura 2.17.

f-euk-pstricks-esempio-elementare

2.15.1   Opzioni

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 2.18 e la corrispondente figura 2.19 (che modificano lievemente il listato 2.16 e la figura 2.17, rispettivamente).

Listato 2.18. Eukleides: altro esempio elementare con pstricks.

A B C equilateral
draw(A, B, C, dotted)
\pscurve[showpoints="true", linewidth=.05, arrows="->"](A, B, C)

Figura 2.19.

f-euk-pstricks-esempio-modificato

2.15.2   Parametri

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:

\psline{<<->>}(0.0000,0.0000)(6.0000,0.0000)

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 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.


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


1) 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.

2) in gradi

3) All'inizio lo stato predefinito è "A".


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

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

Valid ISO-HTML!

CSS validator!