#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkProperty.h"
#include "vtkInteractorStyleTrackballCamera.h"
#include "vtkPoints.h"
#include "vtkPolyVertex.h"
#include "vtkUnstructuredGrid.h"
#include "vtkDataSetMapper.h"
int main
(int argc,
char* argv
[])
{
FILE *fp =
NULL;
if (argc==
1)
{
if ((fp=fopen
("venus.asc",
"r"))==
NULL)
{
printf("Error in open file mbr.asc\n");
return 1;
}
}
else
{
if ((fp=fopen
(argv
[1],
"r"))==
NULL)
{
printf("Error in open file %s\n", argv
[1]);
return 1;
}
}
vtkRenderer *ren=vtkRenderer::
New();
double arr
[3];
vtkPoints * points = vtkPoints::
New();
int n=
0;
while(!feof
(fp
))//首先读取点云数据到点表points同时指定点对应的id:
{
int ret=fscanf
(fp,
"%lf %lf %lf",&arr
[0],&arr
[1],&arr
[2]);
if(ret!=
3)
break;
points->InsertPoint
(n,arr
[0],arr
[1],arr
[2]);
n++;
}
printf("%d\n", n
);
fclose
(fp
);
vtkPolyVertex * polyvertex = vtkPolyVertex::
New();
polyvertex->GetPointIds
()->SetNumberOfIds
(n
);
int i=
0;
for(i=
0;i<n;i++
)//建立拓扑关系
{
polyvertex->GetPointIds
()->SetId
(i,i
);
}
vtkUnstructuredGrid * grid=vtkUnstructuredGrid::
New();
grid->SetPoints
(points
);
grid->InsertNextCell
(polyvertex->GetCellType
(),
polyvertex->GetPointIds
());
vtkDataSetMapper *map1 = vtkDataSetMapper::
New();
map1->SetInput
(grid
);
vtkActor *actor1 = vtkActor::
New();
actor1->SetMapper
(map1
);
actor1->GetProperty
()->SetColor
(0.194,
0.562,
0.75);
ren->AddActor
(actor1
);
ren->SetBackground
(1,
1,
1);
vtkRenderWindow* win=vtkRenderWindow::
New();
win->AddRenderer
(ren
);
win->SetSize
(400,
400);
win->BordersOn
();
//win->FullScreenOn();
//win->HideCursor();
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::
New();
iren->SetRenderWindow
(win
);
vtkInteractorStyleTrackballCamera *style =
vtkInteractorStyleTrackballCamera::
New();
iren->SetInteractorStyle
(style
);
iren->Start
();
ren->Delete
();
win->Delete
();
iren->Delete
();
return 0;
}
编译命令为
gcc -o 可执行文件名 源文件名 -I 头文件目录 需要的库文件 -Wno-dprecated:
gcc -o cloud cloud.
cxx -I /usr/include/vtk
-5.0 /usr/lib/libvtkRendering.
so -Wno-deprecated
运行:
./cloud venus.
asc//数据文件