Je ne comprends pas pourquoi le code suivant lance un avertissement:L'ombrage ne fonctionne pas avec les correctifs spécifiant les couleurs de la face?
% mesh of a plane at z=0 for x,y in [0,5] with 20 vertices per side
n = 20;
[x,y] = ndgrid(linspace(0,5,n));
x = x(:); y = y(:); z = zeros(n^2,1);
% triangulation to obtain faces, and draw a patch with random color for each face
F = delaunay(x,y);
V = [x,y,z];
patch('Vertices', V, 'Faces', F, 'FaceVertexCData', rand(size(F,1), 1));
axis tight; grid on; box off;
% faceted shading works fine, but interp doesn't seem to work
shading('faceted'); % works fine
shading('interp'); % throws a warning
Warning: Error creating or updating Patch
Error in value of property FaceVertexCData
Number of colors must equal number of vertices
Espérons que les commentaires sont suffisamment d'explications pour comprendre la question - mais brièvement, il semble que l'interpolation de couleur du visage ne fonctionne pas lorsque la propriété FaceVertexCData
spécifie les couleurs des faces et non des sommets.
Votre réponse me fait sourire parce que c'est exactement ce que dit l'avertissement; Je peux lire, mais je ne comprends pas pourquoi c'est le cas? Il est "légal" (selon la documentation) de spécifier "FaceVertexCData" pour chaque visage, et la documentation pour "ombrage" ne mentionne aucun problème particulier avec l'option "interp". Pensez-vous que c'est un bug et si non, pourquoi n'y aurait-il aucune mention de ce problème dans la documentation? – Sheljohn
S'il vous plaît ne le prenez pas personnellement, et laissez-moi savoir si ma question n'est pas claire (j'ai ajouté du texte sous l'extrait), mais je vais downvote votre réponse parce que je ne pense pas que ce soit utile. – Sheljohn
@Sheljohn Ce n'est pas un bug. J'ai inclus des liens vers la documentation officielle et ajouté un extrait qui définit explicitement le comportement – Suever