3

表面プロット (trisurf または trimesh) の色のカスタマイズに問題があります。

相対ひずみ値 (メッシュの三角形ごとに計算) に応じて、すべての面に色を付けたいと思います。私は次のようなことを考えていました:

p = patch('Faces',faces,'Vertices',verts,'FaceColor',strain);

しかしFaceColor、配列では機能しないようです。

ひずみは面の数の配列Nx1ですN

4

1 に答える 1

2

まず、色データ配列から色を読み取れるようにするには、プロパティを次のように変更FaceColorする必要があります。'flat'CData

これを試してください(ただし、テストされていません):

p = patch( ...
   'Faces',     faces, ...
   'Vertices',  verts, ...
   'FaceColor', 'flat', ...
   'CData',     strain' ...
);

ここで、プロパティをベクトルCDataの転置に設定します。strain次に、MATLAB は、このベクトルの N ひずみ値を、選択したカラーマップに (線形に) 自動的にマッピングします。詳細については、プロパティCDataMappingを参照してください:

ドキュメンテーション:

http://www.mathworks.se/help/matlab/ref/patch_props.html#FaceColor http://www.mathworks.se/help/matlab/ref/patch_props.html#CData http://www.mathworks. se/help/matlab/ref/patch_props.html#CDataMapping

于 2013-06-10T12:24:23.560 に答える