メインコンテンツに移動

構造格子

基本的なやり方は直交格子と同じです。詳細はXCodeでVTK楽園を参照

ImageData.hの代わりにvtkStructuredGrid.hをincludeします。その後座標を設定し、値を設定します。値の設定のやり方はモロ直交格子と同じです。

単一領域のファイル出力をしたいならvtkXMLStructuredGridWriterをインクルードしてください。

 

  • 座標の設定

まず構造格子と格子点(6面体のセルの角)を宣言します。(ここまで直交と同じ)

    vtkSmartPointer<vtkStructuredGrid> image = vtkSmartPointer<vtkStructuredGrid>::New();

    vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();

次に格子点に具体的な座標を与えていきます。(ここでcellの数はimax*jmax*kmaxとします。)

x=hoge,y=hige,z=hage;

for(int i = 0; i < imax+1; i++){
        for(int j = 0; j < jmax+1; j++){
            for(int k = 0; k < kmax+1; k++){
                points->InsertNextPoint(x,y,z);
            }
        }
    }

その後セルの数を設定します(引数に注意、for文をijkで回したならkmax,jmax,imaxの順)

image->SetDimensions(kmax+1,jmax+1,imax+1);

構造格子に格子点を設定します(ここから同じ)

image->SetPoints(points);

 

  • 値の設定 (ちょっとした注意点)

設定した座標と同じ順にインクリメントされます。つまり設定した座標と同じ順にfor文を入れ子にしてください。ijkの順ならijkの順にといったノリで。