表面プロット (trisurf または trimesh) の色のカスタマイズに問題があります。
相対ひずみ値 (メッシュの三角形ごとに計算) に応じて、すべての面に色を付けたいと思います。私は次のようなことを考えていました:
p = patch('Faces',faces,'Vertices',verts,'FaceColor',strain);
しかしFaceColor
、配列では機能しないようです。
ひずみは面の数の配列Nx1
ですN
。
表面プロット (trisurf または trimesh) の色のカスタマイズに問題があります。
相対ひずみ値 (メッシュの三角形ごとに計算) に応じて、すべての面に色を付けたいと思います。私は次のようなことを考えていました:
p = patch('Faces',faces,'Vertices',verts,'FaceColor',strain);
しかしFaceColor
、配列では機能しないようです。
ひずみは面の数の配列Nx1
ですN
。
まず、色データ配列から色を読み取れるようにするには、プロパティを次のように変更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