我正在尝试使用该trimesh
函数在 Matlab 中绘制一个大网格,顶点的 z 坐标控制颜色。不幸的是,当网格的大小超过 120 个三角形时,Matlab 会停止正确插值颜色。这是一张演示问题的图片,左侧有 120 个三角形,右侧有 121 个三角形。
如您所见,对于大型网格,Matlab 直接从一个顶点的颜色插值到另一个顶点的颜色。这可能是出于性能原因,但我正在尝试为我的论文生成漂亮的图片,我不在乎计算它们需要多长时间。有没有办法禁用这种近似?
这是生成图片的代码:
function test(n)
%%% Generate a mesh with n triangles.
oneTriVerts = [0 0 0;
1 0 0;
1 0 1];
offset = [0 (1/n) 0;
0 (1/n) 0;
0 (1/n) 0];
verts = zeros(0,3);
tris = zeros(0,3);
for i = 0:(n-1)
verts = [verts; (oneTriVerts + i * offset)];
tris = [tris; i*3+1, i*3+2, i*3+3];
end
%%% Draw the mesh, with color corresponding to the z coordinate.
trimesh(tris, verts(:,1), verts(:,2), verts(:,3), verts(:,3));
title(sprintf('n = %d', n))
shading interp
axis equal