+=--+ +-------+ +---+ | A | | B | : | +---+ +-------+ | C | | | +---+
形狀與填色
矩形
先從最基本的矩形開始。用 -
跟 |
做為矩形的邊 (虛線一樣用 =
或 :
標示),轉角則用 +
。
輸出結果:
虛線沒有陰影效果。
Tip
|
在垂直線用 : 來標示虛線,會比在水平線用 = 標示來得直覺。
|
圓角
轉角處也可以用 /
或 \
,就會變成有質感的圓角。
+---\ +-------+ | A | | B : \---+ +-------/
輸出結果:
Tip
|
若想將所有的轉角 (包括線條的轉折處) 畫成圓角,可以加上 -r (--round-corners )。
|
其他形狀
嚴格來說,矩形是 ditaa 唯一支援的形狀,其他都是它的變化形,因為其他形狀都不是直接畫出來的,而是在矩形裡加註 tag (成對的 { … }
),輸出時就會變成不同的形狀 (或符號)。目前支援三種 tag:
-
{d}
- 文件 (document) -
{s}
- 儲存 (storage) -
{io}
- 輸出/輸入 (Input/Output)
例如:
+-------+ +-------------------+ +------+ | | | | : | | | | {io} | | | | {d}| | | | | +-------+ +-------------------+ | | | | | {s}| +------+
輸出結果:
Tag 只要在矩形裡即可,擺放的位置沒有限定 (習慣上會放角落)。另外,矩形搭配 tag 使用時,本身的大小 (dimension) 決定了最後輸出圖形的大小、長寬比例。
填色
形狀的內部可以填色,在矩形內部加註色碼 (color code) 即可,也可以跟 tag 混用。色碼的表示法有兩種:
-
c<CODE>
- 其中 CODE 是三位數的色碼,由左至右分別用 16 進位數字 (0
~F
) 對應 RGB 三原色,例如cF00
(紅色),cFF0
(黃色)。也就是 CSS 3 三碼顏色表示法,
#ABC
等同於#AABBCC
。網路上有許多查詢色碼的網站,雖然多數只提供六碼表示法,但通常取其 2、4、6 碼就會是三碼表示法中相近的顏色,例如
#3498DB
(水藍色) 可以轉換成#39D
,在 ditaa 裡就用c39D
。 -
c<NAME>
- 其中 NAME 是三個字母的顏色名稱 (縮寫),相對容易記憶,有GRE
(綠色)、BLU
(藍色)、PNK
(粉紅色)、RED
(紅色)、YEL
(黃色)、BLK
(黑色) 6 種顏色可以用。
Note
|
色碼除了開頭的 c 是小寫,後面的三碼都要是大寫,否則只會被視為一般的文字。
|
例如:
+-------------+ +-------------+ +-------------+ |cRED RED | |cGRE GRE | |cBLU BLU | +-------------+ +-------------+ +-------------+ +-------------+ +-------------+ +-------------+ |cF00 F00 | |c0F0 0F0 {s}| |c00F 00F | +-------------+ +-------------+ +-------------+
輸出結果:
上下兩排的顏色不太一樣,是因為 c<NAME>
背後所代表是混色,cRED
並非絕對的紅 (#F00
),cGRE
並非絕對的綠 (#0F0
)。
眼尖的你或許也發現右上角 BLU 的文字顏色跟別人不太一樣,那是因為雖然不能指定文字的顏色,但 ditaa 會自動根據背景色調整文字的顏色 (黑/白),避免因為背景色相對亮/暗,而導致上面的文字不容易閱讀。
跟 tag 的用法一樣,色碼只要在矩形裡即可,擺放的位置沒有限定 (習慣上會放角落)。
Note
|
填色只能用在封閉的 (closed) 形狀,所以採用虛線時,色碼不會有作用。 |
層疊
+--------------------------------------+ | | | +--------------+ +--------------+ | | | | | | | | | +--------+ | | +--------+ | | | | : | | | | | | | | | | | | | | {io}| | | | | +--------+ | | +--------+ | | | |cYEL | |cPNK {d}| | | +--------------+ +--------------+ | |cEFF | +--------------------------------------+
輸出結果:
交錯
圖形交錯時,會切割出不同的形狀,色碼可以作用在外圍的形狀,但 tag 只能在交錯出來的矩形裡。
+----------+ |cRED | | +--------+-+ | | | | | | | | | | cYEL| | +-+--------+ | | cGRE| +----------+
輸出結果:
另外帶出 --no-separation