使用 Mathematica 我能够创建以下图
现在我想切换到 Matlab - 我刚刚开始学习。我能够使用 FL.vertices 和 FL.faces 矩阵以及 patch 函数创建三角剖分,看起来像这样
faces=FV.faces;
facecolor = [.7 .7 .7];
patch('faces',faces,'vertices',FV.vertices,...
'facecolor',facecolor,'facealpha',0.8,'edgecolor',[.8.8.8]);
camlight('headlight','infinite');
daspect([1 1 1]); axis vis3d; axis off
material dull;
它产生一个沉闷的图像:
现在,我有一个函数 J,它接受矩阵 FL.vertices 并返回一个正值矩阵。我想根据顶点上 J 的值对面进行着色。可能沿面进行插值。边缘现在可以按原样处理 - 稍后再处理。阅读文档后,我不清楚如何完成此任务。我需要手动查找 J 的最小值和最大值吗?或者Matlab可以自动完成吗?现在可以使用 Matlab 的预设着色方案之一,类似于“温度图”。在什么时候我应该调用我的函数 J?它应该如何与 patch 命令一起使用?我查看了以前对类似问题的答案,但我仍然无法弄清楚如何处理我的情况。任何帮助建议将不胜感激。
PS好的。我想我用简单的方法做到了
FV.Cdata=sphere_jacobian(FV.vertices,1,1,0,1);
figure
Hp = patch('faces',FV.faces,'vertices',FV.vertices,...
'FaceVertexCData',FV.Cdata,'facecolor','interp','edgecolor',[.8 .8 .8]);
但我不确定 min 和 max 是否已被自动计算和插值。