绘制网格
#include <vtkLine.h>
#include <vtkCellArray.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkPoints.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType)
int main(int, char* [])
{
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
for (float row = 0; row <= 1.05; row += 0.05)
{
double p0[3] = { row, 0, 0 };
double p1[3] = { row, 1, 0 };
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
points->InsertNextPoint(p0);
points->InsertNextPoint(p1);
vtkSmartPointer<vtkLine> pLine = vtkSmartPointer<vtkLine>::New();
pLine->GetPointIds()->SetId(0, 0);
pLine->GetPointIds()->SetId(1, 1);
vtkSmartPointer<vtkCellArray> cellArray = vtkSmartPointer<vtkCellArray>::New();
cellArray->InsertNextCell(pLine);
vtkSmartPointer<vtkPolyData> polyData = vtkSmartPointer<vtkPolyData>::New();
polyData->SetPoints(points);
polyData->SetLines(cellArray);
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputData(polyData);
vtkSmartPointer<vtkActor> lineActor =
vtkSmartPointer<vtkActor>::New();
lineActor->SetMapper(mapper);
lineActor->GetProperty()->SetColor(1, 1, 1);
lineActor->GetProperty()->SetLineWidth(1);
renderer->AddActor(lineActor);
}
for (float col = 0; col <= 1.05; col += 0.05)
{
double p0[3] = { 0, col, 0 };
double p1[3] = { 1, col, 0 };
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
points->InsertNextPoint(p0);
points->InsertNextPoint(p1);
vtkSmartPointer<vtkLine> pLine = vtkSmartPointer<vtkLine>::New();
pLine->GetPointIds()->SetId(0, 0);
pLine->GetPointIds()->SetId(1, 1);
vtkSmartPointer<vtkCellArray> cellArray = vtkSmartPointer<vtkCellArray>::New();
cellArray->InsertNextCell(pLine);
vtkSmartPointer<vtkPolyData> polyData = vtkSmartPointer<vtkPolyData>::New();
polyData->SetPoints(points);
polyData->SetLines(cellArray);
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputData(polyData);
vtkSmartPointer<vtkActor> lineActor =
vtkSmartPointer<vtkActor>::New();
lineActor->SetMapper(mapper);
lineActor->GetProperty()->SetColor(1, 1, 1);
lineActor->GetProperty()->SetLineWidth(1);
renderer->AddActor(lineActor);
}
vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
renderWindow->Render();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
绘制点网格
int main(int, char* [])
{
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
vtkSmartPointer<vtkCellArray> cellArray = vtkSmartPointer<vtkCellArray>::New();
vtkIdType type[1];
for (float row = 0.05; row < 1; row += 0.05)
{
type[0] = points->InsertNextPoint(row, 0, 0);
cellArray->InsertNextCell(1, type);
for (float col = 0.05; col < 1; col += 0.05)
{
type[0] = points->InsertNextPoint(row, col, 0);
cellArray->InsertNextCell(1, type);
}
}
vtkSmartPointer<vtkPolyData> polyData = vtkSmartPointer<vtkPolyData>::New();
polyData->SetPoints(points);
polyData->SetVerts(cellArray);
vtkSmartPointer<vtkPolyDataMapper> polyDataMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
polyDataMapper->SetInputData(polyData);
vtkSmartPointer<vtkActor> polyActor = vtkSmartPointer<vtkActor>::New();
polyActor->GetProperty()->SetPointSize(5);
polyActor->SetMapper(polyDataMapper);
renderer->AddActor(polyActor);
vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
renderWindow->Render();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}