【发布时间】:2015-05-23 06:23:57
【问题描述】:
对于我的代码,我需要计算一系列点的 Convexhull,出于某些原因,我需要使用 qhull 库。在这个库中有一个方法qconvex 可以满足我的需要。我可以在终端中运行这个命令并得到我想要的。例如,假设我有一个像points.txt 这样的输入:
2 #dimension
5 #number of points
0 0
1 0
0.5 0.5
1 1
0 1
我可以在终端一中运行这些命令以获得结果:qconvex Fx < points.txt 或 cat points.txt | qconvex -Fx,输出为:
4
0
1
3
4
现在我的问题是如何在我的 C++ 代码中通过我的输入迭代地调用此命令:在我的代码中,我有 2 个 for 相互调用一个特定函数,每次将生成 10 个点(存储在 @ 987654329@) 我需要每次计算这 10 个点的 qconvex。如何在我的代码中运行qconvex 并将rs_tmp 作为其输入?宁愿避免将rs_tmp 写入某个临时文件并从中读取,因为我需要我的代码非常快。
float **rs_tmp;
for (int i = 0; i < NUMBER; i++)
{
for (int j = 0; j < NUMBER; j++)
{
rs_tmp = generate_points(label, dect[i], dect[j], fun);
// HERE I NEED TO CALL QCONVEX SOME HOW
// THE POINTS ARE STORED IN rs_tmp as 2-Dimensional floating points array
}
int size = fun.size();
for(int i = 0; i < size; ++i)
{
delete[] rs_tmp[i];
}
delete[] rs_tmp;
}
【问题讨论】: