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