Qhull::runQhull 二维数据求取包络
时间: 2024-02-02 09:04:58 浏览: 222
如果您想在二维空间中计算点集的凸包,可以在使用 Qhull::runQhull() 函数时,将点集的维度设置为 2。以下是一个使用 Qhull::runQhull() 函数计算二维点集凸包的示例代码:
```c++
#include <iostream>
#include <vector>
#include "libqhullcpp/Qhull.h"
using namespace std;
using namespace orgQhull;
int main()
{
// 定义点集
vector<Point2D> points;
points.push_back(Point2D(0, 0));
points.push_back(Point2D(1, 0));
points.push_back(Point2D(0, 1));
points.push_back(Point2D(1, 1));
// 定义 Qhull 对象
Qhull qhull;
// 计算凸包
qhull.runQhull("", 2, points.data(), points.size(), "Qt");
// 获取凸包信息
const auto facets = qhull.facetList();
for (const auto &facet : facets)
{
cout << "Facet: " << endl;
for (const auto &vertex : facet.vertices())
{
cout << " " << vertex.point() << endl;
}
}
return 0;
}
```
在上面的示例代码中,我们将点集的维度设置为 2,然后使用 Qhull::runQhull() 函数计算凸包。最后,我们获取了凸包的信息(顶点、面和边等),并输出到控制台上。
需要注意的是,在使用 Qhull::runQhull() 函数计算凸包时,还需要根据实际情况设置一些选项,例如输出格式、凸包选项等。关于 Qhull 算法库的更多信息,请参考其官方文档。
阅读全文