Matlab beendet die korrekte Interpolation von Farben in einem Netz, wenn es größer als 120 Dreiecke ist

Ich versuche in Matlab ein großes Netz zu zeichnentrimesh Funktion, wobei die z-Koordinate der Scheitelpunkte die Farbe steuert. Leider beendet Matlab die korrekte Interpolation von Farben, wenn die Größe des Netzes 120 Dreiecke überschreitet. Das folgende Bild zeigt das Problem mit 120 Dreiecken links und 121 Dreiecken rechts.

Wie Sie sehen, interpoliert Matlab bei großen Maschen direkt von der Farbe eines Scheitelpunkts zur Farbe des anderen Scheitelpunkts. Dies wurde wahrscheinlich aus Performancegründen gemacht, aber ich versuche, schöne Bilder für meine Diplomarbeit zu generieren, und es ist mir egal, wie lange es dauert, sie zu berechnen. Gibt es eine Möglichkeit, diese Annäherung zu deaktivieren?

Hier ist der Code, um das Bild zu generieren:

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage