0
私は、地上レーザースキャナを使用して取得した入力点のリストから3D Delaunay三角形分割を生成するためにVTKを使用しています。これまでのところ、3D三角形分割を生成し、.vtkまたは.vtuファイル形式で保存しました。ただし、.ply、.stl、.obj、.wrlなどの一般的な形式の1つとして保存する必要があります。これらのフォーマットのいずれかで3D三角測量を保存するにはどうすればいいですか?私の他の質問は、setAlphaとsetToleranceのパラメータについてですが、これらのパラメータについて詳しく説明してください。事前に おかげvtkDelaunay3Dセマンティック三角形分割
int main(int argc, char* argv[])
{
//load the point cloud
vtkSmartPointer<vtkSimplePointsReader> reader = vtkSmartPointer<vtkSimplePointsReader>::New();
reader->SetFileName("kucuk50k.xyz");
reader->Update();
vtkPolyData* polydata = reader->GetOutput();
std::cout << "The point cloud is loaded" << std::endl;
//end of point cloud loading
std::cout << "----------------------------------------------" << std::endl;
// Generate a mesh from the input points. If Alpha is non-zero, then
// tetrahedra, triangles, edges and vertices that lie within the
// alpha radius are output.
std::cout << "Start delaunay 3d triangulation" << std::endl;
vtkSmartPointer<vtkDelaunay3D> delaunay3DAlpha = vtkSmartPointer<vtkDelaunay3D>::New();
delaunay3DAlpha->SetInputConnection(reader->GetOutputPort());
delaunay3DAlpha->SetAlpha(0.01);
std::cout << "3d Delaunay computed" << std::endl;
std::cout << "----------------------------------------------" << std::endl;
std::cout << "Start writing the triangulation" << std::endl;
vtkSmartPointer<vtkXMLUnstructuredGridWriter> ugWriter = vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
ugWriter->SetInputConnection(delaunay3DAlpha->GetOutputPort());
ugWriter->SetFileName("delaunayy_50k.vtk");
ugWriter->Write();
std::cout << "VTK file created" << std::endl;
return EXIT_SUCCESS;
}
私のデータは地形ではありません。それは様々な建築面で構成されています。 – user887912