Skip to content

Eukleides in italiano

23 luglio 2012

Molti programmi gratuiti permettono di giocare con la geometria euclidea dinamica al computer. E’ un gioco entusiasmante disegnare ad esempio un triangolo equilatero su un segmento e poi, trascinando con il mouse uno dei due vertici, vedere come la figura cambia orientamento e dimensione. Il programma con cui gioco spesso e volentieri è ZuL, che mi ha anche insegnato che “der Zirkel” è il compasso in tedesco, e che la parola per riga inizia con la L. Lingua affascinante.

Un approccio completamente diverso, sicuramente più geek, è quello di descrivere una figura usando un linguaggio di programmazione. Un linguaggio appositamente creato per questo scopo è Eukleides, di Christian Obrecht, che con il motto “ciò che intendi è ciò che ottieni” vuole prestarsi alla creazione di immagini geometriche partendo da una loro descrizione sintetica. L’immagine creata è un eps che può direttamente essere incorporato in un testo LaTeX, ma può anche essere convertito in jpg. Chi lavora in ambiente Linux, per queste cose, è molto avvantaggiato, ma non tutti sono così fortunati.

Eukleides è un linguaggio di alto livello quindi, ad esempio, permette di definire un triangolo con vertici C, L, M, semplicemente scrivendo

C L M triangle

Scriviamo questa riga in un file di testo, triangolo.euk, e aggiungiamo come seconda linea

draw (C.L.M)

con il comando di disegnare il triangolo. Compilando da riga di comando con “eukleides triangolo.euk”, otteniamo in output il file “triangolo.eps”.

Ebbene sì, è Eukleides che decide quale triangolo disegnare. Senza ulteriori specifiche, come la lunghezza di alcuni lati o l’ampiezza di alcuni angoli, ecco che ci pensa lui a proporre un triangolo generico.

Le parole chiave che descrivono le figure geometriche sono in inglese, ma il programma è disponibile anche in francese e tedesco. Non ho trovato molte informazioni a riguardo, anche perché il manuale di istruzioni, così come il sito di Eukleides, sono capolavori di minimalismo, ma volevo tradurre il linguaggio in italiano. Per non perderci troppo tempo ho buttato giù un breve script in Lua che traduce una descrizione dall’italiano all’inglese, esegue Eukleides e infine cancella la traduzione. Lo script traduce solo le parole chiave che ho sperimentato fino ad ora ed è quindi incompleto. Inoltre Lua non è troppo diffuso, sicché per adesso evito di diffondere questo script. In quel che segue uso comunque le parole in italiano, che suppongo siano, in un modo o nell’altro, gestite correttamente.

Intendiamo disegnare un quadrato e un punto P interno ad esso. Proiettiamo quindi ortogonalmente il punto P sui quattro lati del quadrato. Il contenuto del file quadrato.euk è il seguente codice Eukleides:

A B C D quadrato 4

P = punto(4*1/3, 4*2/3)

K = proiezione(P, retta(A, B))
L = proiezione(P, retta(B, C))
M = proiezione(P, retta(C, D))
N = proiezione(P, retta(D, A))

disegna
  (A.B.C.D)
  P
  K; L; M; N
fine

disegna tratteggiato
  P.K; P.L; P.M; P.N
end

etichetta
  A 225°; C 45°
  B 315°; D 135°
  P 45°
fine

Degna di nota è la facilità con cui abbiamo definito i quattro punti, proiezioni sulle rette contenenti i lati del quadrato. Chiediamo di scrivere l’etichetta con il nome del punto P a 45 gradi in senso antiorario partendo dall’orizzontale destra, e quindi in alto a destra, rispetto alla sua posizione. Analogamente con 225, 315 e 135 posizioniamo le etichette rispettivamente in basso a sinistra, in basso a destra e in alto a sinistra del punto corrispondente.

In un secondo file, quadrato2.euk, definiamo, dopo le proiezioni, anche i punti medi tra queste:

A_m = punto_medio(N.K)
B_m = punto_medio(K.L)
C_m = punto_medio(L.M)
D_m = punto_medio(M.N)

disegna
  (A.B.C.D)
  P
  A_m; B_m; C_m; D_m
fine

disegna
  K.L; L.M; M.N; N.K
end

etichetta
  N.A_m; A_m.K
fine

etichetta doppia
  K.B_m; B_m.L
fine

etichetta tripla
  L.C_m; C_m.M
fine

etichetta croce
  M.D_m; D_m.N
fine

Le altre istruzioni trovano immediato riscontro nell’immagine prodotta, e servono a marcare come uguali le due metà di ciascun segmento congiungente le proiezioni.

In un ultimo file, quadrato3.euk, lasciamo solo i punti medi e uniamoli tra di loro. Usiamo una formattazione condizionata:

se quadrato(A_m, B_m, C_m, D_m)
  disegna blu
    A_m.B_m; B_m.C_m; C_m.D_m; D_m.A_m
  fine
altrimenti
  disegna rosso
    A_m.B_m; B_m.C_m; C_m.D_m; D_m.A_m
  fine
fine

Se Eukleides capisce che i punti medi formano un quadrato, li unisce con quattro segmenti blu, altrimenti usa il rosso.

Ed è blu (anche se dal jpg non sembra)! Questo è vero per qualsiasi punto P all’interno del quadrato: come lo dimostri? Qual è l’area del quadrato blu?

Come bonus, un’immagine per ispirarsi:

Eukleides in italiano


Sia Q l’area di un quadrato dato. Si ottiene una figura X congiungendo i punti medi tra coppie di proiezioni su lati adiacenti di Q di un punto interno al quadrato. Dimostrare che X è un quadrato e determinarne l’area in funzione di Q.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: