已知两个点:StartPoint,EndPoint,用vtk可视化其确定的直线:
1、vtkLineSource
vtkSmartPointer<vtkLineSource> lineSource= vtkSmartPointer<vtkLineSource>::New();
lineSource->SetPoint1(Pointbegin);
lineSource->SetPoint2(Pointend);//两点确定一条直线
lineSource->Update();
2、vtkLine
vtkSmartPointer<vtkPoints> Points = vtkSmartPointer<vtkPoints>::New();
Points->InsertNextPoint(StartPoint[0],StartPoint[1],StartPoint[2]);
Points->InsertNextPoint(EndPoint[0],EndPoint[1],EndPoint[2]);//返回该点的索引值
vtkSmartPointer<vtkLine> Line = vtkSmartPointer<vtkLine>::New();
Line->GetPointIds()->SetId(0,0);
Line->GetPointIds()->SetId(1,1);
vtkSmartPointer<vtkCellArray> Cell = vtkSmartPointer<vtkCellArray>::New();
Cell->InsertNextCell(Line);
vtkSmartPointer<vtkPolyData> Polydata=vtkSmartPointer<vtkPolyData>::New();
Polydata->SetPoints(Points);//几何结构
Polydata->SetLines(Cell);//拓扑结构
vtkSmartPointer<vtkPolyDataMapper>Mapper=
vtkSmartPointer<vtkPolyDataMapper>::New();
Mapper->SetInputData(Polydata);
vtkSmartPointer<vtkActor> Actor = vtkSmartPointer<vtkActor>::New();
Actor->SetMapper(Mapper);
vtk的数据集如vtkpolydata、vtkImageData等均由几何结构与拓扑结构组成,对应 Polydata->SetPoints(Points)与 Polydata->SetLines(Cell)。vtkCellArray类是确定拓扑结构的,本文所示的是生成直线,用SetLine实现。
VTK里与数据集对应的类是vtkDataSet,vtkDataSet-》vtkImageData vtkDataSet-》vtkPointSet-》vtkPolydata。vtkDataSet 由组织结构与属性数据组成,组织结构由几何结构与拓扑结构组成。属性数据可以没有,vtkPointData(点数据)类和vtkCellData(单元数据)类表达数据集属性。
原文:https://blog.csdn.net/Zzhouzhou237/article/details/72953530