-->

Eukleides linguaggio appositamente creato per descrivere una figura usando un linguaggio di programmazione.

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.

Download.


Installazione.

Recarsi in Ubuntu Software Center, digitare la parola "eukleides" -senza virgolette- e cliccare subito sul file trovato per avviare automaticamente l'installazione con tutte le librerie richieste.

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:
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

reeder

Nessun commento:

Posta un commento

Pages (26)1234567 Next

Random Posts

  • I 10 post più letti e commentati del 2018 su Re Ubuntu: non solo aggiornamenti del sistema operativo.
    24.01.2019 - 2 Comments
    Tra Gnome, Gimp e le nostre clasicche guida sulle nuove versioni di Ubuntu ecco i 10 post più visitati nel 2018 su Re Ubuntu. Non soltanto i soliti post su come guadagnare di più con AdSense, oppure come…
  • Re Ubuntu: i 10 articoli più letti nel mese di Marzo 2014.
    10.04.2014 - 0 Comments
    1.- Ubuntu non deve tagliar fuori intere generazioni di macchine con Unity. Unity è l'ambiente desktop predefinito e purtroppo si basa ancora su Compiz, software non più sviluppato. Compiz è un…
  • Rsync Vault Manager, per la gestione dei backup usando rsync manager
    23.01.2008 - 0 Comments
    RVM (Rsync Vault Manager) è un archivio che usa rsync manager per la gestione dei backup di più clienti in più partizioni logiche (volte).Ha alcune caratteristiche che alcuni altri rsync backup come per…
  • Ubuntu, chiave per la crescita di Linux
    29.12.2007 - 2 Comments
    The Economist(*), il noto quotidiano londinese segnala il fatto che parecchie aziende che tradizionalmente adottavano una filosofia mirata al software proprietario nel futuro apriranno le sue porte al software…
  • Aumenta il  traffico e guadagna con il tuo blog
    14.11.2007 - 0 Comments
    Vuoi aumentare esponenzialmente il traffico del vostro sito/blog.Da SoldiWeb.net ci arriva questo bellissimo elenco:2RSS4guysfromrolla5z5ASP…

I miei preferiti in Instagram

Archivio