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 回答