如何在C++中编写带有 VTK 的标量文件
How to write scalar filed with VTK in C++?
我开始了解VTK。我想在 .vts 文件中写入一个标量字段。结构化网格是使用下面包含的代码生成的。
我尝试在用户指南和教程中查找信息,但我无法做到。
// Create a grid
vtkSmartPointer<vtkStructuredGrid> structuredGrid = vtkSmartPointer<vtkStructuredGrid>::New();
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
unsigned int numi = 20;
unsigned int numj = 30;
unsigned int numk = 1;
for (unsigned int k = 0; k < numk; k++) {
for (unsigned int j = 0; j < numj; j++) {
for (unsigned int i = 0; i < numi; i++) {
points->InsertNextPoint(i, j, k);
}
}
}
// Specify the dimensions of the grid
structuredGrid->SetDimensions(numi, numj, numk);
structuredGrid->SetPoints(points);
// Write file
vtkSmartPointer<vtkXMLStructuredGridWriter> writer = vtkSmartPointer<vtkXMLStructuredGridWriter>::New();
writer->SetFileName("output.vts");
writer->SetInputData(structuredGrid);
writer->Write();
可以为 vtkStructuredGrid 对象的属性 PointData 设置标量。
然后 vtkXMLStructuredGridWriter 对象在 vts 文件中写入 structuredGrid,如下所示:
vtkFloatArray *scalars = vtkFloatArray::New();
for (int i=0; i< numi*numj*numk; i++) scalars->InsertTuple1(i, 1.0 * i /(numi*numj*numk));
structuredGrid->GetPointData()->SetScalars( scalars );
// Write file
vtkSmartPointer<vtkXMLStructuredGridWriter> writer = vtkSmartPointer<vtkXMLStructuredGridWriter>::New();
writer->SetFileName("output.vts");
writer->SetInputData(structuredGrid);
writer->Write();
相关文章:
- Qt VTK交互风格的信号到小部件
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 为什么 std::optional::operator=(U&&) 要求你是非标量类型?
- 如何禁用VTK的热键
- QVTKWidget在VTK 8.1中已弃用,并将在未来的版本中删除
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 如何在 vtk Poly 数据上进行布尔运算?
- VTK 图像数据,访问数组中的 1 个图像
- 特征中的自定义标量类型
- 为什么从具有较大阵列的 SIMD 内部函数中获得的相对加速比标量更大?
- 如何在C++中将一个特征张量乘以另一个特征张量的标量和?
- 标量类型的特征模板无法编译固定大小的子矩阵操作
- 结构 init:字符**类型的标量初始值设定项两边的大括号
- 如何设置vtk相机的正确变焦系数?
- 将标准::时间点乘以标量
- 为<vtkDataArray> VTK 非结构化网格声明 vtkSmartPointer 类型的变量时出现问题
- 在 VTK 8.2.0 中序列化 vtkUnstructuredGrid
- 如何使用 Makefile 使用 VTK 库编译项目?
- 如何在C++中编写带有 VTK 的标量文件
- VTK vtkStructuredPoints GetPointData()设置标量