関数を使用してMatlabで大きなメッシュを描画しようとしてtrimesh
います.頂点のz座標が色を制御しています. 残念ながら、メッシュのサイズが 120 三角形を超えると、Matlab は色の補間を正しく停止します。これは問題を示す図で、左側に 120 個の三角形、右側に 121 個の三角形があります。
ご覧のとおり、大きなメッシュの場合、Matlab は 1 つの頂点の色から他の頂点の色に直接補間します。これはおそらくパフォーマンス上の理由によるものですが、私は自分の論文用に素敵な画像を生成しようとしており、それらの計算にかかる時間は気にしません。この近似を無効にする方法はありますか?
画像を生成するコードは次のとおりです。
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