$ dot -Tplain input.dot $ dot -Tplain-ext input.dot
純文字
簡單的基於行的語言
plain 和 plain-ext 格式使用簡單的基於行的語言產生輸出。 後者格式的不同之處在於,在邊緣上,它會在適用的情況下提供頭部和尾部節點上的端口名稱。
具有兩個節點並以邊緣連接的簡單圖的輸出範例
-Tplain
$ echo 'digraph { a->b }' | dot -Tplain
graph 1 0.75 1.5
node a 0.375 1.25 0.75 0.5 a solid ellipse black lightgrey
node b 0.375 0.25 0.75 0.5 b solid ellipse black lightgrey
edge a b 4 0.375 0.99579 0.375 0.88865 0.375 0.7599 0.375 0.64045 solid black
stop
-Tplain-ext
$ echo 'digraph { a->b }' | dot -Tplain-ext
graph 1 0.75 1.5
node a 0.375 1.25 0.75 0.5 a solid ellipse black lightgrey
node b 0.375 0.25 0.75 0.5 b solid ellipse black lightgrey
edge a b 4 0.375 0.99579 0.375 0.88865 0.375 0.7599 0.375 0.64045 solid black
stop
共有四種型態的語句。
graph scale width height node name x y width height label style shape color fillcolor edge tail head n x₁ y₁ .. xₙ yₙ [label xl yl] style color stop
- graph
- width 和 height 值給出繪圖的寬度和高度。繪圖的左下角位於原點。 scale 值表示如果給定 size 屬性,並且需要縮放繪圖以符合該大小,則應如何縮放繪圖。 如果不需要縮放,則會將其設定為 1.0。 請注意,所有圖形、節點和邊緣的座標和長度都以未縮放的方式給出。
- node
- name 值是節點的名稱,而 x 和 y 給出節點的位置。 width 和 height 是節點的寬度和高度。 label、style、shape、color 和 fillcolor 分別使用屬性預設值(如果需要)給出節點的 標籤、樣式、形狀、顏色 和 填滿顏色。 如果節點沒有樣式屬性,則使用 "solid"。
- edge
- tail 和 head 值給出頭部和尾部節點的名稱。 在 plain-ext 格式中,如果邊緣連接到端口上的節點,則會在頭部或尾部名稱後附加冒號和端口名稱。 n 是定義形成邊緣的 B 樣條的控制點數。 其後是 2*n 個數字,按從尾部到頭部的順序給出控制點的 x 和 y 座標。 如果邊緣具有 標籤,則緊接著是標籤位置的 x 和 y 座標。 邊緣描述由邊緣的 樣式 和 顏色 完成。 與節點一樣,如果未定義樣式,則使用 "solid"。
注意: 邊緣語句中給定的控制點定義了邊緣的主體。 特別是,如果邊緣具有指向頭部或尾部節點的箭頭,則最後或第一個控制點與相關節點的邊界之間會存在間隙。 至少有 3 種方法可以處理此間隙
- 排列輸入圖對所有邊使用
dir=none
、arrowhead=none
或arrowtail=none
。 在這種情況下,終止控制點將始終接觸節點。 - 考慮連接控制點和節點中心的線段,並確定該線段與節點邊界相交的點。 然後使用控制點和交點作為箭頭的主要軸線。 此方法的問題是,如果邊緣有端口,則該邊緣將不會指向節點的中心。 在這種情況下,可以不使用控制點和中心點,而是使用控制點及其切線。
- 排列輸入圖使用
headclip=false
或tailclip=false
。 在這種情況下,邊緣將在節點的中心而不是邊界處終止。 如果使用箭頭,則仍然會有間隙,但通常會發生在節點內。 應用程式仍然需要將樣條線裁剪到節點邊界。 此外,與前一個項目一樣,如果邊緣指向節點端口,則此技術將失敗。
- 排列輸入圖對所有邊使用
輸出由一個 graph 行、每個節點一個的 node 行序列、每個邊緣一個的 edge 行序列以及最後一個 stop 行組成。 所有單位都以英吋為單位,以浮點數表示。
請注意,plain 格式提供最少的資訊,實際上僅提供節點位置和大小以及邊緣樣條控制點。 這些格式通常對於只需要此幾何資訊且願意填寫所有圖形細節的應用程式最有用。 這些格式的唯一真正優點是它們的簡潔性和易於解析。 一般而言,在提供的資訊量方面,dot 和 xdot 是較佳的選擇。