私のコードでは、一連の点の 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++ コードで入力に対して反復的にこのコマンドを呼び出す方法for
ですfloat **rs_tmp;
。毎回これらの 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;
}