電信網結構(telecommunication network structure)是指電信網各種網路單元按技術要求和經濟原則進行組合配置的組合邏輯和配置形式。組合邏輯描述網路功能的體系結構,配置形式描述網路單元的鄰接關系,即以交換中心(或節點)和傳輸鍊路所組成的拓撲結構。常見的網絡拓撲結構有星型結構、總線結構、環形結構、樹形結構、網狀結構、混合型拓撲以及蜂窩拓撲結構等,本文的例子主要描繪的是總線型拓撲,在顯示上相對其他的結構類型來說更清晰明了,繪制起來也非常容易。
雖然題目起的名字是電信網絡拓撲圖,幾乎所有的拓撲圖都能涵蓋,例如基本網絡圖,網絡拓撲圖,機架圖,網絡通信圖,3D網絡圖等等。
效果圖如下:

這個圖看起來挺簡單的,代碼也少,但是内容不少。
這邊提到一個代理連線的問題,“代理”兩個字可以很好地表明代理連線意義。實際上就是如果組内部的節點與組外部的節點有連線,那麼在組合并的時候,會在這個組會“代理”與外部節點之間的連線,這個就是代理連線。我們拿機櫃02來說吧,機櫃02内部有一個“電腦”與“内部網絡交換機”之間有兩條連線,那麼當我們輕按兩下機櫃02合并時,實際上就相當于機櫃02與“内部網絡交換機”之間有兩條連線了。
那麼,我們來看看如何繪制這個組以及組内部的節點吧,先建立“機櫃02”的 Group 節點,因為整個例子我建立了三個 Group 節點,而且建立的方式都類似,是以把建立組的代碼封裝起來複用:
組是可以通過輕按兩下展開合并的,展開的時候顯示的是一個有标題欄的框(當然這些都是可以自定義的),合并的時候就顯示上面代碼中設定的 group.setImage 中的圖檔。
所有機櫃内部的節點都是 ht.Node 類型的節點,是以我也封裝了一下:
生成機櫃02:
因為連線需要的是“源節點”以及“終節點”,這邊源節點是中間的“内部網絡交換機”,我們再建立這個節點:
不知道你們有沒有注意到,有一個 label2 的樣式屬性,這個是 HT 為了能在一個節點上添加兩個 label 文本而增加的功能,label 屬性和 label2 的屬性是完全相同的,隻要在設定屬性的時候用 label 和 label2 區分開來就可以。
源節點和終節點都具備了,可以制作連線了:
還有一點有趣的,“交換機”的部分,最左側藍色方形的節點和中間長條的節點并不是一體的,而是分離的,但是我通過 setHost 進行節點與節點間的吸附,然後反吸附回來,這樣操作上就相當于這兩個節點是一體的:
因為 HT 會按照節點添加進資料容器中的順序來進行層次的排列,我的交換機是在 line 的添加之後的,是以預設交換機的節點會顯示在 line 之下,我們将預設的層級顯示關閉,并設定交換機 exchange 顯示在資料容器的頂部:
代碼就是這些,還有不懂的可以留言或者私信我也可以,大家一起探讨。