C++创建一个含三角形的vtkUnstructuredGrid另一个是四边形的vtkUnstructuredGrid
这里是用VTK库创建一个含有三角形和四边形的vtkUnstructuredGrid的C++代码示例:
#include <vtkUnstructuredGrid.h>
#include <vtkPoints.h>
#include <vtkTriangle.h>
#include <vtkQuad.h>
#include <vtkCellArray.h>
#include <vtkSmartPointer.h>
vtkSmartPointer<vtkUnstructuredGrid> createTriangleUnstructuredGrid()
{
vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid = vtkSmartPointer<vtkUnstructuredGrid>::New();
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
points->InsertNextPoint(0.0, 0.0, 0.0);
points->InsertNextPoint(1.0, 0.0, 0.0);
points->InsertNextPoint(0.5, 1.0, 0.0);
vtkSmartPointer<vtkTriangle> triangle = vtkSmartPointer<vtkTriangle>::New();
triangle->GetPointIds()->SetId(0, 0);
triangle->GetPointIds()->SetId(1, 1);
triangle->GetPointIds()->SetId(2, 2);
vtkSmartPointer<vtkCellArray> cells = vtkSmartPointer<vtkCellArray>::New();
cells->InsertNextCell(triangle);
unstructuredGrid->SetPoints(points);
unstructuredGrid->SetCells(VTK_TRIANGLE, cells);
return unstructuredGrid;
}
vtkSmartPointer<vtkUnstructuredGrid> createQuadUnstructuredGrid()
{
vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid = vtkSmartPointer<vtkUnstructuredGrid>::New();
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
points->InsertNextPoint(0.0, 0.0, 0.0);
points->InsertNextPoint(1.0, 0.0, 0.0);
points->InsertNextPoint(1.0, 1.0, 0.0);
points->InsertNextPoint(0.0, 1.0, 0.0);
vtkSmartPointer<vtkQuad> quad = vtkSmartPointer<vtkQuad>::New();
quad->GetPointIds()->SetId(0, 0);
quad->GetPointIds()->SetId(1, 1);
quad->GetPointIds()->SetId(2, 2);
quad->GetPointIds()->SetId(3, 3);
vtkSmartPointer<vtkCellArray> cells = vtkSmartPointer<vtkCellArray>::New();
cells->InsertNextCell(quad);
unstructuredGrid->SetPoints(points);
unstructuredGrid->SetCells(VTK_QUAD, cells);
return unstructuredGrid;
}
这里我们定义了两个函数:createTriangleUnstructuredGrid和createQuadUnstructuredGrid,它们分别创建一个含有三角形和四边形的vtkUnstructuredGrid,并返回这两个对象的指针。
这里我们用vtkPoints来定义点的坐标,用vtkTriangle和vtkQuad来定义三角形和四边形,然后将它们存储在vtkCellArray中,最后将vtkPoints和vtkCellArray分别设置给vtkUnstructuredGrid对象。
使用这两个函数可以轻松地创建含有三角形和四边形的vtkUnstructuredGrid对象
原文地址: https://www.cveoy.top/t/topic/frzY 著作权归作者所有。请勿转载和采集!