Lin-Canny算法求解凸包间的最近点对

求解凸包间的最近点对是几算几何中一个非常有用的算法,经常被用在谐如碰撞检测、物理引擎等图形学相关的领域,而且该算法的效率对于最终整个系统的效能有着相当关键的制约。常规的对于几何体之间的最近点对求解一般即是暴力的遍历算法,这种效率太过于低下,不具有普遍的适用意义,尤其是在一个较大的碰撞系统里边。因而,Lin以及Canny等人提出了渐进式求解的Lin-Canny算法。

Lin-Canny算法的主要用途即是求解两个凸包几何体间的最近距离(或最近点对等)。它的实现基础首先是将几何体元进行分类,即:点、边(三维线段)、面(有限面片),进而将两个凸包中的几何体元组成基本的几何体元对:点-点、点-边、点-面、边-边、边-面、面-面。如此一来,对于两个几何体之间的最近点对可能出现的位置即归结到了上述六种体元对之间。

LC的高效实现中,另外一个关键的概念即是三维Voronoi区域(3D Voronoi Area VA),它是二维Voronoi区域的升维扩展。对于一种由基于几何体元组成的体元对AB来说,A Voronoi区域即是指,在此区域内定可以获得B上到A的最近点对,而在此区域则不一定能得到这样的最近点对。Voronoi区域是LC算法相对于暴力遍历算法进行效率提升的一个重要基础。一般来说,对于凸包上的点所对应的VA就是由它所关联到的若干条边所对应的在该点上的垂面所包围而成,VA的方向为凸包在该点上由内向外的方向。对于每条边所对应的VA则是由四个平面包围而成,其中两个平面为该边所关联的两个面片在该条边处所对应的垂面,另外两个则是由该边的过其两个端点的垂面。对于组成凸包的面片所对应的VA则是由垂直于该面片且过组成该面片的几条边的平面包围而成。对于三维空间中的三种基本体元:点、边、面所对应的各自的Voronoi区域可见下图所示。

           VA_PE             

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值