这里是用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;
}

这里我们定义了两个函数:createTriangleUnstructuredGridcreateQuadUnstructuredGrid,它们分别创建一个含有三角形和四边形的vtkUnstructuredGrid,并返回这两个对象的指针。

这里我们用vtkPoints来定义点的坐标,用vtkTriangle和vtkQuad来定义三角形和四边形,然后将它们存储在vtkCellArray中,最后将vtkPoints和vtkCellArray分别设置给vtkUnstructuredGrid对象。

使用这两个函数可以轻松地创建含有三角形和四边形的vtkUnstructuredGrid对象

C++创建一个含三角形的vtkUnstructuredGrid另一个是四边形的vtkUnstructuredGrid

原文地址: https://www.cveoy.top/t/topic/frzY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录