Vorrei creare una trama della superficie 3D che si estenda su tutti i punti da una nuvola di punti [X,Y,Z]
. Per esempio, questo è un grafico a dispersione della mia nuvola di punti:Matlab Delaunay Triangolazione della nuvola di punti - Color Matrix
scatter3(X,Y,Z,5,C)
Come si può vedere ogni punto di dati ha un valore di intensità C
.
ora effettuare la triangolazione
dt = DelaunayTri(X,Y,Z);
[tri Xb]= freeBoundary(dt);
E ho la superficie triangolata
figure
trisurf(tri,Xb(:,1),Xb(:,2),Xb(:,3), 'FaceColor', 'cyan', 'faceAlpha', 0.8);
Tuttavia, quando si tenta di impostare il colore della superficie utilizzando
trisurf(tri,Xb(:,1),Xb(:,2),Xb(:,3),C,'EdgeAlpha',0,'FaceColor','interp')
Viene visualizzato il messaggio di errore: "Avviso: Colore dati non impostato per ombreggiatura interpolata", dovuto al fatto che la dimensione di C
non corrisponde a Xb
o tri
.
Come posso essere sicuro di ottenere il colore di superficie interpolato corretto?
Brillante, grazie mille per la risposta. Funziona magnificamente! –
Scusa, non lo sapevo –