Matlab перестает корректно интерполировать цвета на сетке, если она больше 120 треугольников

Я пытаюсь нарисовать большую сетку в Matlab, используяtrimesh функция, с координатой z вершин, управляющих цветом. К сожалению, Matlab перестает корректно интерполировать цвета, когда размер сетки превышает 120 треугольников. Вот картина, демонстрирующая проблему: 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

Ответы на вопрос(1)

Ваш ответ на вопрос