In questo precedente articolo vi ho spiegato cos’è l’arte TSP e cosa mi ha spinto ad avvicinarmene. Oggi invece vi spiego il procedimento che ho utilizzato per creare alcune immagini TSP, come la seguente:
L’occorrente per creare arte TSP
Per la realizzazione purtroppo necessitiamo di un po’ di passaggi e programmi. Attualmente esiste un software chiamato stipplegen che fa tutto in “automatico”, ma non è semplice da utilizzare e ha molte limitazioni. Ciò di cui avremo bisogno noi è:
- La nostra immagine in formato PNG che vogliamo convertire in arte TSP.
- Il software voronoi.exe (vedi ZIP). Si tratta di un software open source, qui trovate maggiori informazioni e il codice sorgente. Richiede Microsoft Visual C++ 2010 SP1 Runtime Library.
- Il software Concorde.
- Due programmini per la conversione dei file (vedi ZIP). Trovate qui tutta la documentazione a riguardo.
- Il software open source Inkscape.
Metto qui uno ZIP con tutti i programmi ad eccezione di Inkscape e Concorde. Quest’ultimi li potrete trovare nella sezione download dei siti che ho linkato. La procedura che esporrò funziona in ambiente Windows.
Preparare l’immagine PNG
Volendo si può usare qualsiasi immagine in formato PNG. Però per garantire un risultato migliore io consiglio di aumentare la luminosità e il contrasto delle vostre immagini. Per fare ciò potete servirvi di un sacco di software. Io ho usato Photoshop, ma ci sono molti programmi gratuiti che fanno lo stesso lavoro. Un esempio è il software gratuito GIMP (che potete scaricare in questa pagina).
Creare il puntinato
Adesso che è pronta l’immagine PNG, bisogna creare un insieme di punti che approssima la nostra immagine. Questi saranno i futuri “nodi” che andranno utilizzati per risolvere il problema TSP. Per fare ciò dovete prima di tutto estrarre lo ZIP che ho fornito precedentemente (ad esempio sul descktop). Spostate la vostra immagine PNG nella cartella di estrazione. Dopodiché su “start” di Windows digitate “cmd” e premete invio. Vi si aprirà il prompt dei comandi.
Spostatevi ora col prompt dei comandi nella cartella di estrazione, dunque digitate per esempio:
cd Desktop
Se come me avete estratto nel desktop. Ora eseguiamo Voronoi. Digitate ad esempio:
voronoi -s 16000 immagine.png output.svg
“16000” sono i punti che andranno ad approssimare l’immagine. Generalmente si sta in un range tra 10000 e 100000. “immagine.png” è il nome del vostro file formato PNG. Infine “output.svg” è il nome del file di output in formato SVG. Premuto invio si creerà nella stessa cartella di voronoi.exe (nel mio caso “desktop”) un file chiamato appunto “output.svg”. Se proverete ad aprirlo con Inkscape, visualizzerete un bel puntinato:
Convertire il file SVG
Questo file SVG va convertito. Per far ciò useremo il programma svg_extract.exe. Dunque sempre sul prompt dei comandi digitiamo:
svg_extract output.svg
Si creerà un file chiamato position.tsp nella cartella di estrazione (nel mio caso sempre desktop).
Realizziamo l’arte TSP
Apriamo questo file .tsp con Concorde. Visualizzeremo tutti i punti della nostra immagine. Per farne il tracciato bisogna andare in “Heuristic” > “Lin Kernighan”. Impostiamo #Kicks a 500 così da evitare che il processo richieda tempo estremamente eccessivo. Infine diamo l’OK. Aspettiamo finché non vedremo il tracciato creato. Andiamo su “file” e clicchiamo “Save tour”. Nella finestra che si aprirà, navighiamo fino alla nostra cartella di estrazione e salviamo il file come “tour.cyc”.
Convertiamo i nostri file in un SVG
Ora abbiamo così due file: uno che è output.svg e l’altro che è tour.cyc. Dobbiamo unirli in un unico file in formato SVG. Per fare ciò useremo il programma tsp2svg.exe. Riandiamo dunque sul prompt dei comandi e digitiamo:
tsp2svg output.svg tour.cyc
Si sarà creato un file chiamato tsp_art.svg. Questo è il nostro punto d’arrivo. Con Inkscape questo file può essere facilmente convertito in altri formati come PNG, JPG o sopratutto DXF.
Consigli e documentazione
Senza questo sito non sarei andato molto lontano, infatti molto di ciò che ho riportato qui viene da li. Mentre per quanto riguarda Voronoi, purtroppo il server del progetto non è più raggiungibile. Nonostante ciò è possibile accedere alle informazioni tramite la cache di Wayback Machine. Invece per Concorde, c’è tutto ciò da sapere sul loro sito. Sottolineo il fatto che più grande sarà l’immagine PNG e maggiori saranno il numero di punti scelti, maggiore sarà il tempo richiesto per realizzare l’arte TSP. Maggiori saranno i punti scelti, più definita l’immagine verrà fuori.