0
我正在嘗試爲正在編寫的工具生成類圖,但是我似乎無法得到正確的佈局。不遵守DOT文件中的端口規範的邊緣
下面是從實際數據產生我的樣本點文件:
digraph G {
fontname = "Bitstream Vera Sans"
fontsize = 8
splines = "ortho"
node [
fontname = "Bitstream Vera Sans"
fontsize = 8
shape = "record"
]
edge[
arrowtail="empty"
dir="back"
]
Baseclass [
label = "{xxxxxxxxxx::Baseclass||+ xxxxxxxxxxx \l+ xxxxxxx \l+ xxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l}"
]
SubclassOne [
label = "{xxxxxxxxxx::SubclassOne||+ xxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxx \l+ xxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxx \l}"
]
SubclassTwo [
label = "{xxxxxxxxxx::SubclassTwo||+ xxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxxxxxxxxx \l}"
]
SubclassThree [
label = "{xxxxxxxxxx::SubclassThree||+ xxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxxxx \l}"
]
SubclassFour [
label = "{xxxxxxxxxx::SubclassFour||+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxx \l- xxxxxxxxxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxx \l}"
]
SubclassFive [
label = "{xxxxxxxxxx::SubclassFive||+ xxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxx \l+ xxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxxxxxxxxx \l+ xxxxxxxxxxx \l+ xxxxxxxx \l+ xxxxxxxxxxxxxxx \l- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \l}"
]
Baseclass:s -> SubclassOne:n;
Baseclass:s -> SubclassTwo:n;
Baseclass:s -> SubclassThree:n;
Baseclass:s -> SubclassFour:n;
Baseclass:s -> SubclassFive:n;
}
產生下面的圖片使用的graphviz:
我改變了邊緣關係的順序從基地到指向子類(帶有尾部箭頭),以便子類的排列順序要比基類垂直。長方法名稱溢出它們的容器,並且關係邊緣不服從尾端上的指定端口。看起來他們的X位置是正確的,但是Y位置不正確。我更喜歡它看起來something like this其中兩個子類關係箭頭組合在一起,形成超級容器底部中心點的單一連接。如果我刪除端口規範,邊緣不再剪切到它們連接的節點,但佈局仍然不是我認爲理想的。
不幸的是,他們不服從正確的端口規範,但看不見的節點在這種情況下似乎不太難添加 – grahamp