Matlab przestaje poprawnie interpolować kolory na siatce, jeśli jest większy niż 120 trójkątów

Usiłuję narysować dużą siatkę w Matlab za pomocątrimesh funkcja, ze współrzędną z wierzchołków kontrolujących kolor. Niestety Matlab przestaje poprawnie interpolować kolory, gdy rozmiar siatki przekracza 120 trójkątów. Oto zdjęcie przedstawiające problem: 120 trójkątów po lewej i 121 trójkątów po prawej.

Jak widać, w przypadku dużych siatek Matlab interpoluje bezpośrednio z koloru jednego wierzchołka na kolor drugiego wierzchołka. Prawdopodobnie zostało to zrobione ze względu na wydajność, ale staram się generować ładne zdjęcia do mojej pracy magisterskiej i nie obchodzi mnie, ile czasu zajmuje ich obliczenie. Czy istnieje sposób na wyłączenie tego przybliżenia?

Oto kod do wygenerowania obrazu:

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

questionAnswers(1)

yourAnswerToTheQuestion