gpt4 book ai didi

c++ - 如何读取 vtkDataArray 中的数据?

转载 作者:行者123 更新时间:2023-11-30 05:35:42 24 4
gpt4 key购买 nike

我是 VTK 的新手。这是我的代码的一部分:

vtkDataSetReader *rdr = vtkDataSetReader::New();
rdr->SetFileName("proj7b.vtk");
rdr->SetScalarsName("hardyglobal");
rdr->Update();

int dims[3];
vtkRectilinearGrid *rgrid = (vtkRectilinearGrid *) rdr->GetOutput();
rgrid->GetDimensions(dims);



vtkDataArray *dataArray;
dataArray = vtkDoubleArray::New();

dataArray = rgrid->GetPointData()->GetScalars()->GetVoidPointer(0);

for(i=0;i<10;i++)
{
cout<<"here----------"<<endl;
cout<<" "<<dataArray[i]<<" ";
}

我想将数据读入我的 vtkDataArray。但是这段代码无法编译:

proj7b.cxx:525:15: error: 
assigning to 'vtkDataArray *' from incompatible type 'void *'
dataArray = rgrid->GetPointData()->GetScalars()->GetVoidPointer(0);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

产生了 1 个错误。有没有人知道如何将数据读入 vtkDataArray?

最佳答案

Vtk为它提供了方法,你不需要使用“低级”方法:

rgrid->GetPointData()->GetArray(0)

或者rgrid->GetPointData()->GetArray("数组名")

FieldData 和 CellData ( http://www.vtk.org/doc/release/6.2/html/classvtkFieldData.html ) 的工作方式相同

你得到的是一个 vtkArray,而不是一个简单的 C++ 数组,所以你必须像这样阅读它:

cout<<" "<<dataArray->GetValue(i) <<" ";

维基里有很多例子http://www.vtk.org/Wiki/VTK/Examples/Cxx

关于c++ - 如何读取 vtkDataArray 中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33838986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com