Для моего кода мне нужно вычислить Convexhull серии точек и по некоторым причинам мне нужно использовать библиотеки qhull. В этой библиотеке есть метод qconvex, который выполняет именно то, что мне нужно. Я могу запустить эту команду в терминале и получить то, что хочу. например, давайте предположим, что у меня есть вход как points.txt
:обеспечивают ввод qconvex в код C++
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 точек каждый раз (хранится в float **rs_tmp;
), и мне нужно вычислить qconvex за эти 10 баллов каждый раз. как я могу запустить 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;
}