蛙の井戸見聞記 Pretty frog in a well who knows nothing of the great web ocean!

~~ 好奇心は猫をも殺す Curiosity Kills the Cat ~~ ♪欲しいモノ・食べたいモノ・ネットで集めた情報と日々の記録の倉庫♪ Logging my life... Since 2003.12  

VTK

siela2008-10-30

わけのわからんvtkファイルのまとめ。

STRUCTURED_POINTS
格子点の位置が等間隔で決まっているときの描画、特に温度分布や濃度分布と流線ベクトルを書きたい場合。
ポイントは、

  1. 最初の行はシャープの後のスペースを含めて完全にこのまま書くこと。
  2. STRUCTURED_POINTSを使うので
    1. DIMENSIONが、格子点のx,y,z方向のそれぞれの個数になっている。
    2. ORIGINは原点の座標
    3. SPACINGは格子点間の距離
    4. POINT_DATAの後の数は、DIMENSIONのx,y,zのかけ算になっているはず。
  3. VECTORデータの進行の仕方は、xが最初に、zが最後に進む
    • x0 y0 z0
    • x1 y0 z0
    • x2 y0 z0
    • .....
    • x0 y1 z0
    • x1 y1 z0
    • ...
  4. SCALARの場合も同様の順序で記載する。
  5. それぞれ、適宜改行が必要。
  6. ちなみに、ファイル名は file.vtkと拡張子「.vtk」とすること。
  7. これをVisItに食わせれば、3次元表示という寸法(本日の写真)。 
# vtk DataFile Version 2.0
Structured Points example.
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS 2 2 2
ORIGIN 0.0 0.0 0.0
SPACING 1.0 1.0 1.0

POINT_DATA 8
SCALARS Temp float
LOOKUP_TABLE default
100 200
300 400

500 600
500 600

VECTORS velocity float
0.0 0.0 0.0
1.0 0.0 0.0 
0.0 1.0 0.0
1.0 1.0 0.0

1.0 1.0 1.0
1.0 1.0 0.0
1.0 1.0 1.0
1.0 1.0 1.0

この例の場合
スカラーの場合は、

100 200  ←それぞれ、点(0,0,0)での値 (1,0,0)の値
300 400 ←(0,1,0)の値 (1,1,0)の値

500 600 ←(0,0,1)の値 (1,0,1)の値
500 600 ←(0,1,1)の値 (1,1,1)の値

ベクトルの方は、

0.0 0.0 0.0 ←点(0,0,0)での値
1.0 0.0 0.0 ←点(1,0,0)での値 
0.0 1.0 0.0 ←点(0,1,0)での値
1.0 1.0 0.0 ←点(1,1,0)での値

1.0 1.0 1.0 ←点(0,0,1)での値
1.0 1.0 0.0 ←点(1,0,1)での値
1.0 1.0 1.0 ←点(0,1,1)での値
1.0 1.0 1.0 ←点(1,1,1)での値

となるわけだ。