ParaViewを使用していくつかのデータを表示するために基本的なバイナリVTKファイルを書き込もうとしていますが、いくつかのエラーがあり、その理由がわかりません。これがC++での私のテストコードです:
#include <iostream>
#include <fstream>
double myarray[72] = {
0,0,0,1,0,0,2,0,0,3,0,0,4,0,0,
5,0,0,0,1,0,1,1,0,2,1,0,3,1,0,
4,1,0,5,1,0,0,2,0,1,2,0,2,2,0,
3,2,0,4,2,0,5,2,0,0,3,0,1,3,0,
2,3,0,3,3,0,4,3,0,5,3,0};
int main()
{
std::ofstream vtkstream("test01.vtk", std::ios::out | std::ios::trunc);
bool ascii = false;
if (vtkstream) {
vtkstream<<"# vtk DataFile Version 2.0"<<"\n";
vtkstream<<"Exemple"<<"\n";
if (ascii) {
vtkstream<<"ASCII"<<"\n";
vtkstream.close();
vtkstream.clear();
vtkstream.open("test01.vtk", std::ios::out | std::ios::app);
vtkstream<<"DATASET STRUCTURED_GRID"<<std::endl;
vtkstream<<"DIMENSIONS 6 4 1"<<std::endl;
vtkstream<<"POINTS 24 double"<<std::endl;
for (unsigned int i = 0; i < 72; ++i) {
vtkstream<<myarray[i]<<" ";
}
} else {
vtkstream<<"BINARY"<<"\n";
vtkstream.close();
vtkstream.clear();
vtkstream.open("test01.vtk", std::ios::out | std::ios::app | std::ios::binary);
vtkstream<<"DATASET STRUCTURED_GRID"<<std::endl;
vtkstream<<"DIMENSIONS 6 4 1"<<std::endl;
vtkstream<<"POINTS 24 double"<<std::endl;
for (unsigned int i = 0; i < 72; ++i) {
vtkstream<<myarray[i];
}
}
vtkstream.close();
} else {
std::cout<<"ERROR"<<std::endl;
}
return 0;
}
ASCIIファイル形式は完全に機能しますが、バイナリバージョンではParaViewで次のエラーが発生します。
一般的な警告:........ \ src \ VTK \ IO \ vtkDataReader.cxxの1363行目バイナリデータの読み取り中にエラーが発生しました!
VTKフォーマットの間違いはどこにありますか?