一肾请、開發(fā)環(huán)境
OS
Windows 7 Ultimate 64 Bit
IDE
Visual Studio 2012 Premium (MSVC++ 11.0)
Qt5 Visual Studio Add-in 1.2.3
External Libraries
Qt 5.3 32-bit for Desktop (MSVC 2012 OpenGL) [GPL]
OGDF v. 2015.05 [GPL]
Bin目錄下是可執(zhí)行文件兵迅。附有所需的MSVC 11.0運行庫的安裝包唯灵,以及Qt所需的一系列dll文件俺附。已用虛擬機測試辆脸,在新安裝的純凈Win10系統(tǒng)中能夠正常運行话原。
由于采用標準C++語法、采用的圖形框架Qt是跨平臺的线衫、采用的外部庫OGDF是C++的且是開源的凿可,本軟件理論上可跨平臺編譯運行。
程序執(zhí)行時默認從工作目錄下的PaperConferenceAuthorGraph授账、TopicGraph子目錄內(nèi)讀取輸入數(shù)據(jù)枯跑。
二、要求完成情況
以下是已完成的項目白热,依大作業(yè)要求和評分標準列出敛助。
基本要求
使用QT實現(xiàn)2個數(shù)據(jù)集的不同數(shù)據(jù)類型、不同Layout方法的繪圖屋确,能夠在不同方法數(shù)據(jù)間切換
能夠展示節(jié)點和邊的所有屬性
能夠?qū)σ晥D進行放大纳击、縮小(可使用鼠標滾輪)
進階要求
可以用鼠標拖動節(jié)點
不同Layout之間用動畫進行變換
鼠標在移到可以點擊的部分時變成手的形狀
可以針對點的屬性(連通度)進行過濾
可以利用拉索選擇一部分點進行高亮攻臀,并且拖動這一些點(鼠標右鍵進入多選模式)
其他交互
自定義視圖的幾何樣式:半徑焕数、線寬、字號茵烈、配色主題
為懸停和選中的節(jié)點提供視覺提示
點擊節(jié)點后高亮由其相鄰節(jié)點構(gòu)成的子圖
鼠標拖拽可進行視圖平移
鼠標滾輪可以當前指針位置為中心進行視圖縮放
自己寫的Layout算法
Circular(簡單勻布在圓周上百匆。這是一個平凡的算法砌些,庫里本來就有)
Circular x2(選取一部分點放在中間的小圓圈內(nèi))
Grid(簡單平鋪在平面格點上呜投。這是一個平凡的算法,庫里本來就有)
LZYLayout(所有點分布成LZY字樣存璃。這是一個娛樂性的算法)
水平實在有限仑荐,自己寫的布局算法都比較水。感覺亮點在于細膩流暢的前端交互纵东。除使用右側(cè)面板中的按鈕粘招、滑動條、下拉列表框之外偎球,主要的交互都可以由各種鼠標動作(左鍵洒扎、右鍵辑甜、滾輪,懸停袍冷、點擊磷醋、拖拽)完成。工程總代碼量不大(1.6k行胡诗,不計generated files)邓线,因為用了些面向?qū)ο蟮募记删喒?jié)約代碼量。數(shù)據(jù)結(jié)構(gòu)和邏輯上做了精心的優(yōu)化煌恢。據(jù)我自己測試骇陈,程序占用內(nèi)存的峰值不超過12MB,交互和動畫毫無卡頓感瑰抵。
參考文檔和完整的文檔和源碼下載地址: