Featured Posts

.: Ad:.

3 stycznia 2014

ditaa - sztuka zakodowana w Ascii

Czy da się tworzyć sztukę używając systemowego notatnika? Może prościej - czy da się w ogóle coś wygenerować w systemowym notatniku? Odpowiedź brzmi: TAK! Oczywiście należy jeszcze zdefiniować czym jest dla nas sztuka i czym jest to "coś", oczywiście patrząc przez pryzmat notatnika. Jak zawsze trzeba zacząć od rzeczy prostych, a do tych znakomicie nadaje się narzędzie ditaa - generator diagramów Ascii.


ditaa to narzędzie bazujące na Javie, które potrafi zamienić odpowiednie znaki kodu Ascii na bitmapy. W efekcie otrzymujemy całkiem przyzwoite diagramy, a mnogość dostępnych opcji pozwala nam na uwolnienie prawdziwego ducha twórczości. Ale po kolei.
+---------+
| cBLU    |
|         |
|    +----+
|    |cPNK|
|    |    |
+----+----+
   
Przed renderingiemustawienia domyslneopcja -E włączona


Najnowszą wersję można pobrać ze strony: http://sourceforge.net/projects/ditaa/
Wymagane jest też zainstalowane środowisko Java Runtime JRE, najlepiej w wersji 1.5 lub nowszej.
Gdy wszystko mamy zainstalowane jak trzeba startujemy ditaa z lini komend, wpisując polecenie:

java -jar ditaaNNN.jar

gdzie NNN to wersja zainstalowanego oprogramowania. Powita nas ekran krótkiej pomocy, gdzie m.in. znajdziemy opis takich opcji jak:
-E,--no-separation - usuwa separację sąsiednich bloków diagramu, efekt widać na poniższym przykładzie:
-r,--round-corners - wszystkie rogi będą zaokrąglone.
-s,--scale <SCALE> - liczba naturalna określająca rozmiar renderowanego obrazka (2.5 renderuje obraz 1.5 raza większy niż oryginał).
-S,--no-shadows - wyłącza efekt cienia.
-t,--tabs <TABS> - definiuje ilość spacji w tabulatorze (domyślnie 8). Używanie tabulacji jest niepolecane.

Trochę przykładów nigdy nie zaszkodzi.

Zaokrąglony róg/rogi - znaki / oraz \ pozwalają zaokrąglić wybrany róg diagramu:
/--+
|  |
+--/
    
round corner demo
Kod AsciiRender
Kolor - składnia pozwalająca dodać kolory do diagramu ma postać:
cXXX
Gdzie XXX to numer szesnastkowy określający kolor w systemie RGB.
/----\ /----\
|c33F| |cC02|
|    | |    |
\----/ \----/

/----\ /----\
|c1FF| |c1AB|
|    | |    |
\----/ \----/
    
color demo
kod AsciiRender
Można też stosować tutaj kilka ułatwień:

Color codes
/-------------+-------------\
|cRED RED     |cBLU BLU     |
+-------------+-------------+
|cGRE GRE     |cPNK PNK     |
+-------------+-------------+
|cBLK BLK     |cYEL YEL     |
\-------------+-------------/
color code
Kod AsciiRender


Jak widać kolorowe pole może zawierać również tekst, którego kolor dopasowywany jest do tła automatycznie - domyślny kolor to czarny. Kodowanie koloru dotyczy tylko zamkniętych kształtów i poza nimi po prostu nie działa.


Tagi - ditaa rozpoznaje pewne tagi zmieniające sposób renderowania kształtu. Umieszczane są one wewnątrz kształtu w nawiasach klamrowych {}. Poniżej ich krótkie zestawienie.

NazwaAsciiRenderKomentarz
Document
+-----+
|{d}  |
|     |
|     |
+-----+
    
Symbol reprezentujący dokument.
Storage
+-----+
|{s}  |
|     |
|     |
+-----+
    
Symbol reprezentujący ikonę bazy danych lub dysku.
Input/Output
+-----+
|{io} |
|     |
|     |
+-----+
    
Symbol reprezentujący pole wejścia/wyjścia.
Przerywane linie - Każdy render zawierający w kodzie Ascii znak równości = (dla linii poziomych) lub dwukropek : (dla linii pionowych) ma postać linii przerywanych. 
----+  /----\  +----+
    :  |    |  :    |
    |  |    |  |{s} |
    v  \-=--+  +----+
kod AsciiRender
Punktowe połączenia - Użycie gwiazdki * jest odnotowywane na linii w postaci kółka, nie kończącego linii!
*----*
|    |      /--*
*    *      |
|    |  -*--+
*----*
point marker demo
AsciiRender
Triki tekstowe - wypunktowanie - zamieszczenie skłądni postaci o XXCV spowoduje wygenerowanie wypunktowania o treści XXCV, znak o musi być poprzedzony i zakończony spacją.
/-----------------\
| Things to do    |
| cGRE            |
| o Cut the grass |
| o Buy jam       |
| o Fix car       |
| o Make website  |
\-----------------/
bullet point demo
Before processingRendered




Życzę miłej zabawy. Powodzenia!

Brak komentarzy:

Prześlij komentarz