Я пишу код, который использует библиотеку TetGen, чтобы найти выпуклую оболочку набора точек. Однако по умолчанию
tetrahedralize("Q", &in, &temp);
генерирует как выпуклую оболочку, так и тетраэдризацию 3D Делоне. Я склонен полагать, что можно получить только выпуклый корпус, так как Mathematica имеет рабочую реализацию Tetgen и соответствующую функцию TetGenConvexHull[]
которая делает это, но после прохождения исходного кода tetgen.cxx
и документации я могу " t, похоже, узнает, как это сделать.
Как я могу изменить поведение TetGen по умолчанию, чтобы получить только выпуклый корпус?
Короче говоря, вы не можете. TetGen (версия 1.4.3) вычисляет тетраэдризацию delaunay и оттуда извлекается корпус. Что вы можете сделать, это использовать параметр "E"
чтобы не генерировать *.ele
. Если вам нужен только выпуклый корпус, вы можете посмотреть на qhull и там qconvex
fucntion.