Oriented Bounding Box 碰撞检测

该博客讨论了如何解决项目中两个三维点集相交的问题,通过求取点集的包围盒进行碰撞检测。作者建议使用开源库ApproxMVBB来轻松获取点集的包围盒,并提供了编译和使用该库的注意事项,包括自编译pugixml并开启长整形支持,以及正确下载ApproxMVBB库。博客还分享了测试程序和MATLAB中调用的代码示例。
摘要由CSDN通过智能技术生成

rt, 这是项目中遇到的一个问题, 即: 给定两个点集, 如何判断他们是否相交。


其中, 输入自然是两个三维点集。 做法是分别求他们的包围盒, 然后看包围盒是否相交即可。


所以, 现在问题转换为给定一个三维点集, 求其包围盒。 这里有人说可以用pca求其特征向量, 这个向量就是这个点集的方向。 我觉得应该是对的, 但我没试过。


这里我采用的是网上的开元库。 省心省力。。。 网址: http://gabyx.github.io/ApproxMVBB/, 作者提供了一个库, 可以直接输出一堆点, 输出一个包围盒。


编译的步骤在官网上有, 但是有几个注意的地方:


1, 编译pugixml的时候, 不要直接从软件源里安装, 需要自己编译!, 同时, 打开长整形支持

install with #define PUGIXML_HAS_LONG_LONG enabled in pugiconfig.hpp


2, 下载的时候记得用git clone。。。 我用master的压缩包似乎有问题。


其他的没问题, 直接编译通过。 作者用了eigen的库, 里面的一些数据结构基本是eigende。


下面贴两端代码, 分别是编译好之后的测试程序, 


test。cpp

// ========================================================================================
//  ApproxMVBB
//  Copyright (C) 2014 by Gabriel Nützi <nuetzig (at) imes (d0t) mavt (d0t) ethz (døt) ch>
//
//  This Source Code Form is subject to the terms of the Mozilla Public
//  License, v. 2.0. If a copy of the MPL was not distributed
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值