VTK 簡單點雲數據顯示繪制


基於vtkPolyData,繪制時除了輸入點坐標,還需要通過setVerts指定點繪制信息。

simplePoints.txt的內容為簡單的 xyz,如:
20 20 20
20 20 30
20 20 40
20 30 30

參考vtkSimplePointsReader,此類位於legacy文件夾下,不建議直接使用

// VTK includes
#include "vtkPoints.h"
#include "vtkPolyData.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkPolyDataMapper.h"
#include "vtkInteractorStyle.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkProperty.h"
#include "vtkCellArray.h"
#include "vtkInteractorStyleTrackballCamera.h"



int main(int argc, char *argv[])
{
	vtkPoints *points = vtkPoints::New();
	vtkCellArray *cells = vtkCellArray::New();


//	ifstream fs(argv[1]);
	ifstream fs("simplePoints.txt");
	vtkIdType idtype;
	double x, y, z;
	while(fs>>x>>y>>z){
		//插入點坐標,此處可改為其它的xyz
		idtype = points->InsertNextPoint(x,y,z);  
		cells->InsertNextCell(1, &idtype);
	}


	// 渲染機制未知,需要同時設置點坐標與點坐標對應的verts
	// verts中的id必須與點坐標對應
	vtkPolyData *polyData = vtkPolyData::New();
	polyData->SetPoints(points);
	polyData->SetVerts(cells);

	//下面為正常的可視化流程,可設置的點雲顏色、大小等已注釋
	vtkPolyDataMapper *mapper = vtkPolyDataMapper::New();
	mapper->SetInputData(polyData);

	vtkActor *actor = vtkActor::New();
	actor->SetMapper(mapper);
	//設置顏色與點大小
	//actor->GetProperty()->SetColor(0.0, 0.0, 0.0);  
	//actor->GetProperty()->SetPointSize(2);


	vtkRenderer *renderer = vtkRenderer::New();
	renderer->AddActor(actor);
	// 設置背景顏色
	// renderer->SetBackground(1, 1, 1);

	vtkRenderWindow *renderWindow = vtkRenderWindow::New();
	renderWindow->AddRenderer(renderer);

	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
	iren->SetRenderWindow(renderWindow);

	vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New();
	iren->SetInteractorStyle(style);

	iren->Initialize();
	iren->Start();

	points->Delete();
	polyData->Delete();
	mapper->Delete();
	actor->Delete();
	renderer->Delete();
	renderWindow->Delete();
	iren->Delete();
	style->Delete();

	return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM