• 検索結果がありません。

この章のまとめ

ドキュメント内 Contents VTK (ページ 42-45)

2.5.2 カラーテーブル作成

色付けに関しては,今まで使用してきた vtkLookupTable ではなく,vtkColorTransferFunction を使えばよい。71 - 80 行目で,スカラー値とRGB値を対応させつつカラーテーブルを作成 している。たとえば,75行目ではスカラー値 -3800.0に RGB = (0.0, 0.0, 1.0)を割り当ててい る。このようにして作ったカラーテーブルを 95行目でvtkLookupTableと同じ関数を使って,

vtkPolyDataMapperに渡している。

(作成したカラーテーブルは,負の値で青っぽく,正の値で赤っぽくなる。)

2.5.3 別のスカラーで色づけ

Figure 2.16: Field Data:複数のデータを持つことができる

凹凸をつけるスカラーデータとは別のスカラーデータで色づけするには,vtkFieldDataとい うクラスを使えばよい。このクラスは,配列を複数まとめて持つことができる(FIgure 2.16)。

40 - 47: 色づけ用のデータを元データから作成,sdata mに代入。このスカラーデータで色づけ

をする。実際には,ファイルから温度などのデータを読み込むことになる

49 - 56: 凹凸用データをsarrayに,色づけ用データをsarray2にセット。それぞれに“Picard”,

“Riker”とSetNameで名前をつけている

58 - 61: sarrayとsarray2をfd(vtkFieldData)にセット

66:等間隔メッシュデータに,fd(sarray, sarray2を保持)をセット

68 - 69: SetActiveScalarsで,ポリゴンデータを作るスカラーデータとして,“Picard”を使うよ うに指示

97 - 99:色付けにfdにあるデータ・“Riker”を使うように指示

パイプライン構造はFigure 2.17,実行結果はFigure 2.18。Xが小さいところと大きいところで,

色(青っぽい赤っぽい)が変わっているのが確認できる。これは,圧力の等値面を温度で色 づけする,などに応用できる。

Figure 2.17:サンプルプログラム4のパイプライン構造

Figure 2.18: 富士山周辺:地面の凹凸は“Picard”,色づけは“Riker”を使用

Table 2.2:本章で紹介したクラスおよびそのメソッド

頂点移動 vtkWarpScalar

法線ベクトル計算 vtkPolyDataNormals ポリゴンの三角化 vtkTriangleFilter

照明設定 vtkLight

: SetPosition(float, float, float) : SetFocalPoint(float, float, float)

配列 vtkFloatArray

: SetName(const char *)

配列関係 vtkFieldData

: AddArray(vtkDataArray *) データセット vtkImageData

: GetPointData()(->ShallowCopy(vtkFieldData *)) : GetPointData()(->SetActiveScalars(const char *)) カラーテーブル vtkLookupTable

: SetNumberOfColors(int n)

: SetTableValue(vtkIdType, float [4]) カラーテーブル vtkColorTransferFunction

: AddRGBPoint(float value, float r, float g, float b) Mapper vtkPolyDataMapper

: SetScalarModeToUsePointFieldData() : ColorByArrayComponent(char *, int) カメラ設定 vtkCamera

: SetPosition(double, double, double) : SetFocalPoint(double, double, double) : SetViewUp(double,double, double) : SetClippingRange(double, double) : SetViewAngle(double) /degreeで指定 : ParallelProjectionOn(),〜Off()

: SetParallelScale(double)

: Azimuth(double) / degreeで指定 : Elevation(double) / degreeで指定 : Roll(double) / degreeで指定 : Pitch(double) / degreeで指定 : Yaw(double) / degreeで指定 : OrthogonalizeViewUp()

Window関係 vtkRenderWindowInteractor, vtkInteractiveStyleTrackball

VRML他 vtkVRMLExporter, vtkIVExporter, vtkOBJExporter, vtkRIBExporter

Chapter 3

VTK 形式のデータ

3.1 本章の概要

VTKのデータ形式の解説をする。この形式のデータを作ると,vtk〜Readerというクラスで読 み込むことができるようになり,自らC/C++の関数を使いデータを読み込んむ部分を可視化プ ログラムに組み込まなくて良い。また,データの格子サイズなどをプログラムの中に書き込ま なくても良いので,プログラムの汎用性が高まる。

ここでは等間隔,Rectilinear Gridについて,VTK形式のデータの作り方を紹介する。

VTK形式のデータは,アスキーやバイナリの生データの前に,ヘッダ(格子点のサイズな ど)がついているだけである。

ドキュメント内 Contents VTK (ページ 42-45)