BOOST Voronoi Visualizer
eryar@163.com
Abstract. The Voronoi extension of the Boost.Polygon library provides functionality to construct a Voronoi diagram of a set of points and linear segments in 2D space with some limitations. The paper mainly describles how to compile the boos voronoi visualizer and use it show the example voronoi diagram result.
Key Words. Boost, Voronoi, Visualizer
1.Introduction
由Intel贊助的BOOST.POLYGON VORONOI庫(kù)提供了根據(jù)二維空間中的點(diǎn)和線段來(lái)構(gòu)造Voronoi圖的功能。
Figure 1.1 Voronoi Diagram generated by Boost.Polygon Voronoi library
Boost的Voronoi庫(kù)有以下特點(diǎn):
v 開源Open Source(Boost Software License);
v 提供對(duì)線段的支持Fully Functional with Segments;
v 穩(wěn)定高效Robustness and Efficiency;
v 輸出結(jié)果精確Precision of the Output Structures;
v 接口簡(jiǎn)單,易于使用Simple Interface;
v 不依賴第三方庫(kù)No Third Party Dependencies;
因?yàn)槭怯媚0鍖?shí)現(xiàn),源碼都有以頭文件的形式提供,沒有依賴任何第三方庫(kù),方便程序布署。程序接口簡(jiǎn)單,很容易在程序中使用,且輸出結(jié)果精確,算法性能高。提供了對(duì)線段的支持,即使有些商業(yè)庫(kù)也沒有提供對(duì)線段的支持。
在Visulalization Boost Voronoi in OpenSceneGraph 一文中已經(jīng)對(duì)boost的voronoi庫(kù)的用法進(jìn)行介紹,本文主要介紹如何編譯boost自帶的顯示Voronoi圖程序,來(lái)對(duì)數(shù)據(jù)進(jìn)行可視化。
2.Compile
因?yàn)锽oost.Polygon的Voronoi庫(kù)不依賴任何第三方庫(kù),而可視化程序voronoi_visualizer用到了Qt,程序的編譯也很簡(jiǎn)單。配置好boost庫(kù)和Qt庫(kù)后就可以了。下面詳細(xì)介紹在Visual Studio中使用Qt-plugin的方式的編譯過(guò)程。
2.1 新建一個(gè)Qt Application
安裝Visual Studio的Qt-Plugin后會(huì)在新建的界面中出現(xiàn)Qt相關(guān)的工程,這里創(chuàng)建一個(gè)Qt Application工程,如下圖所示:
Figure 2.1 New Project
2.2 配置工程
因?yàn)関oronoi_visualizer使用到了Qt的OpenGL庫(kù),所以需要把OpenGL庫(kù)選中,如下圖所示:
Figure 2.2 Select OpenGL Library
2.3 刪除文件
將程序自動(dòng)生成的main.cpp和voronoivisualizer.h, voronoivisualizer.cpp刪除,并將boost庫(kù)的文件voronoi_visual_utils.hpp和voronoi_visualizer.cpp復(fù)制到工程所在文件夾,并添加到工程中,編譯即可。
Figure 2.3 voronoi visualizer
3.Show Off
編譯成功后,就可以對(duì)boost的示例數(shù)據(jù)進(jìn)行可視化。先通過(guò)按鈕Browse Input Directory選擇數(shù)據(jù)輸入目錄,對(duì)文件列表中的數(shù)據(jù)雙擊就可以顯示出結(jié)果了。