我在自定义曲面图(trisurf或trimesh)的颜色时遇到问题。
我希望每个面的颜色取决于相对应变值(为网格的每个三角形计算)。我在想像这样的东西:
p = patch('Faces',faces,'Vertices',verts,'FaceColor',strain);但是FaceColor似乎不能与数组一起工作。
Nx1是面数组,其中N是面数。
发布于 2013-06-10 20:24:24
首先,您需要将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
https://stackoverflow.com/questions/17023323
复制相似问题