vtk如何输出.vtp格式的文件

 时间:2024-10-14 01:20:13

1、vtkxmlpolydatawriter()用来写入VTK XML polydata 格式的文件。vtkcellarray()支持的列表结构形式:(n,id1,id2,…,idn, n,id1,id2,…,idn, …)其中n是在结构中点的数目,ID为偏移相关点列表。这种数据结构的优点:紧凑性,简单,易于外部数据的接口。然而,它是完全不足够的随机访问。

vtk如何输出.vtp格式的文件

2、代码如下#include "vtkVersion.h"#include "vtkSmartPointer.h"#include "vtkPolyData.h"#include "vtkPoints.h"#include "vtkCellArray.h"#include "vtkXMLPolyDataWriter.h"#include <vtkVertexGlyphFilter.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderer.h>#include <vtkRenderWindow.h>#include <vtkRenderWindowInteractor.h>#include <iostream>vtkPolyData * custom_reader(std::istream & infile){ vtkIdType number_of_points, number_of_triangles; infile >> number_of_points >> number_of_triangles; vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); points->SetNumberOfPoints(number_of_points); for (vtkIdType i = 0; i < number_of_points; i++) { double x, y, z; infile >> x >> y >> z; points->SetPoint(i, x, y, z); } vtkSmartPointer<vtkCellArray> polys = vtkSmartPointer<vtkCellArray>::New(); for (vtkIdType i = 0; i < number_of_triangles; i++) { vtkIdType a, b, c; infile >> a >> b >> c; polys->InsertNextCell(3); polys->InsertCellPoint(a); polys->InsertCellPoint(b); polys->InsertCellPoint(c); } vtkPolyData * polyData = vtkPolyData::New(); polyData->SetPoints(points); polyData->SetPolys(polys); return polyData;}int main(){ std::string inputFilename = "888.txt"; std::ifstream fin(inputFilename.c_str()); vtkSmartPointer<vtkPolyData> polyData = vtkSmartPointer<vtkPolyData>::Take( custom_reader(fin)); vtkSmartPointer<vtkVertexGlyphFilter> glyphFilter = vtkSmartPointer<vtkVertexGlyphFilter>::New(); glyphFilter->SetInputConnection(polyData->GetProducerPort()); glyphFilter->Update(); vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); mapper->SetInputConnection(glyphFilter->GetOutputPort()); vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); actor->SetMapper(mapper); vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); renderer->AddActor(actor); renderer->SetBackground(.3, .6, .4); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); renderWindow->Render(); renderWindowInteractor->Start(); vtkSmartPointer<vtkXMLPolyDataWriter> writer = vtkSmartPointer<vtkXMLPolyDataWriter>::New(); writer->SetInput(polyData); writer->SetFileName("888.vtp"); writer->Write(); return 0;}

vtk如何输出.vtp格式的文件
  • 申请康复补贴流程?
  • 工作经验 - - 叉车操作注意事项
  • 东方红LX1000后输出掉档怎么维修
  • 数据加密技术有哪些优缺点?
  • 热门搜索
    安徽的旅游景点 经期可以喝咖啡 幼儿教师资格证怎么考 魂斗罗30条命怎么调 蜂蜜可以放冰箱吗 剖宫产多久可以同房 昌平旅游景点 阳朔旅游 凉拌黄瓜的做法 丹巴藏寨攻略