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库提供了根据二维空间中的点和线段来构造Voronoi图的功能。

Figure 1.1 Voronoi Diagram generated by Boost.Polygon Voronoi library

Boost的Voronoi库有以下特点:

v 开源Open Source(Boost Software License);

v 提供对线段的支持Fully Functional with Segments;

v 稳定高效Robustness and Efficiency;

v 输出结果精确Precision of the Output Structures;

v 接口简单,易于使用Simple Interface;

v 不依赖第三方库No Third Party Dependencies;

因为是用模板实现,源码都有以头文件的形式提供,没有依赖任何第三方库,方便程序布署。程序接口简单,很容易在程序中使用,且输出结果精确,算法性能高。提供了对线段的支持,即使有些商业库也没有提供对线段的支持。

Visulalization Boost Voronoi in OpenSceneGraph 一文中已经对boost的voronoi库的用法进行介绍,本文主要介绍如何编译boost自带的显示Voronoi图程序,来对数据进行可视化。

2.Compile

因为Boost.Polygon的Voronoi库不依赖任何第三方库,而可视化程序voronoi_visualizer用到了Qt,程序的编译也很简单。配置好boost库和Qt库后就可以了。下面详细介绍在Visual Studio中使用Qt-plugin的方式的编译过程。

2.1 新建一个Qt Application

安装Visual Studio的Qt-Plugin后会在新建的界面中出现Qt相关的工程,这里创建一个Qt Application工程,如下图所示:

Figure 2.1 New Project

2.2 配置工程

因为voronoi_visualizer使用到了Qt的OpenGL库,所以需要把OpenGL库选中,如下图所示:

Figure 2.2 Select OpenGL Library

2.3 删除文件

将程序自动生成的main.cpp和voronoivisualizer.h, voronoivisualizer.cpp删除,并将boost库的文件voronoi_visual_utils.hpp和voronoi_visualizer.cpp复制到工程所在文件夹,并添加到工程中,编译即可。

Figure 2.3 voronoi visualizer

3.Show Off

编译成功后,就可以对boost的示例数据进行可视化。先通过按钮Browse Input Directory选择数据输入目录,对文件列表中的数据双击就可以显示出结果了。

BOOST Voronoi Visualizer的更多相关文章

  1. Visulalize Boost Voronoi in OpenSceneGraph

    Visulalize Boost Voronoi in OpenSceneGraph eryar@163.com Abstract. One of the important features of ...

  2. Visulalization Voronoi in OpenSceneGraph

    Visulalization Voronoi in OpenSceneGraph eryar@163.com Abstract. In mathematics a Voronoi diagram is ...

  3. Boost 1.61.0 Library Documentation

    http://www.boost.org/doc/libs/1_61_0/ Boost 1.61.0 Library Documentation Accumulators Framework for ...

  4. PCL(Point Cloud Library)的第三方库简单介绍(boost,eigen,flann,vtk,qhull)

    PCL由于融合了大量的第三方开源库,导致学习成本升高~在学习之前我们最好还是了解一下这些库都是干嘛的,以便有的放矢.在之后更好的使用 boost: C++的标准库的备用版,擅长从数学库到智能指针,从模 ...

  5. boost强分类器的实现

    boost.cpp文件下: bool CvCascadeBoost::train( const CvFeatureEvaluator* _featureEvaluator, int _numSampl ...

  6. Boost信号/槽signals2

    信号槽是Qt框架中一个重要的部分,主要用来解耦一组互相协作的类,使用起来非常方便.项目中有同事引入了第三方的信号槽机制,其实Boost本身就有信号/槽,而且Boost的模块相对来说更稳定. signa ...

  7. 玩转Windows服务系列——使用Boost.Application快速构建Windows服务

    玩转Windows服务系列——创建Windows服务一文中,介绍了如何快速使用VS构建一个Windows服务.Debug.Release版本的注册和卸载,及其原理和服务运行.停止流程浅析分别介绍了Wi ...

  8. boost::function的用法

    本片文章主要介绍boost::function的用法. boost::function 就是一个函数的包装器(function wrapper),用来定义函数对象. 1.  介绍 Boost.Func ...

  9. Boost条件变量condition_variable_any

    Boost条件变量可以用来实现线程同步,它必须与互斥量配合使用.使用条件变量实现生产者消费者的简单例子如下,需要注意的是cond_put.wait(lock)是在等待条件满足.如果条件不满足,则释放锁 ...

随机推荐

  1. Building a RESTful Web Service

    Reference: https://spring.io/guides/gs/rest-service/ 参照上述链接进行操作,使用gradle build. 因为total new to this. ...

  2. 原生js实现查询天气的小应用

    demo:https://zsqosos.github.io/weather/ 截图: 实现功能:打开网页时显示用户所在城市的天气状况,在输入框输入城市可查询其它城市. 实现过程:先调用百度地图的AP ...

  3. JavaScript使用封装

    基本封装方法 请看下面的例子: var Person = function(name,age){ this.name = name; this.age = age || "未填写" ...

  4. Chrome - 怎样独立窗口打开开发人员工具

    打开开发人员工具, 右上角找到下图红圈的键, 长按左键直到出现绿圈的键, 别松开鼠标, 把指针移到绿圈的键上面, 松开左键, 好了, 一个独立窗口粗线了. 转载请声明出处: http://www.cn ...

  5. uoj98未来程序改 纯暴力不要想了

    暴力模拟A了,数据还是良(shui)心(shui)的 90分的地方卡了半天最后发现一个局部变量被我手抖写到全局去了,,, 心碎*∞ 没什么好解释的,其实只要写完表达式求值(带函数和变量的),然后处理一 ...

  6. 怎么统计指定文件夹下含有.xml格式的文件数目

    如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...

  7. perl学习之路3

    Perl编程之路3 标签: perl 列表与数组   Perl里面代表复数的就是列表和数组 列表(list)指的是标量的有序集合, 而数组(array)则是存储列表的变量. 在Perl这两个属于尝尝混 ...

  8. Python之路【第六篇】python基础 之面向对象进阶

    一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象  和  issubclass(su ...

  9. <十四>JDBC_c3p0数据库连接池

    配置文件:c3p0-config.xml <!-- Hibernate官方推荐使用的数据库连接池即c3p0;dbcp是Tomcat在数据源中使用 --><c3p0-config> ...

  10. 在React 组件中使用Echarts

    在完成一个需求的时候碰到一个场景需要使用柱状图.涉及到可视化,第一反应当然是Echarts了.平时用js加载Echarts组件很方便,但是在React中就要费下神了.各种连蒙带猜实现了.edmo里的E ...