美文网首页
RVD(Restricted Voronoi Diagram)的

RVD(Restricted Voronoi Diagram)的

作者: WZFish0408 | 来源:发表于2017-08-19 19:16 被阅读27次

    前言

    小学期的项目,做之前不和我们说是工业级的保密算法,做之后,只有一篇论文,还是纸质版,没有电子版,一个月的时间还有许多bug,但是尽力了。使用了Eigen3.0.0和freeglut以及meshLib

    算法概述

    由于是纸质版论文,也不好发上来,大体说一下步骤。
    1.获取所有三角面片,并随机产生点作为种子
    2.构建k-d树,可以找到生成的点的k个最近点(KNN)
    3.构造多边形数据结构,初始化数据结构为三角面片的三个点,找到距离多边形中心最近的种子(k-d树)以及这个种子最近的k个点(k-d树)。
    4.对每一个多边形进行切割形成泰森多边形,切割方式是,多边形的中心种子与最近的k个点的连线的垂直平分面切割原多边形形成新多边形,并使用栈记录是哪一个最近的点
    5.从栈中取出点继续对原多边形切割直到栈空

    多线程加速解释

    由于可以对于每一个三角面片分开切割,所以可以并行执行,但是线程太多会出现问题,所以我在每个线程切割100个面。使用GPU更快

    存在的问题

    上面说有bug,主要是因为切割,有时候会切掉本应该压栈的点。论文也没说明白,谁让人家保密呢。。。最后这么难的东西,就给一个月,才给我88分,气!

    代码

    https://github.com/WZFish/RVD-with-mutithread.git

    相关文章

      网友评论

          本文标题:RVD(Restricted Voronoi Diagram)的

          本文链接:https://www.haomeiwen.com/subject/afwerxtx.html