2009-01-11 5 views

Répondre

42

Un autre choix consiste à définir edgeColor et/ou lineStyle propriétés de l'objet handle de surface à aucun.

>> hSurf = surf(X,Y,Z,'EdgeColor','none','LineStyle','none','FaceLighting','phong'); 
+0

cela a fonctionné! merci –

10

La commande d'ombrage est votre ami:

ombrage plat - vous donne la surface sans lignes de maillage

ombrage interp - interpole les couleurs entre les parcelles pour donner une finition lisse

ombrage à facettes - vous donne la surface avec des lignes de maillage noires (similaire à plat)

+0

J'ai exécuté l'ombrage à plat avant la commande de surf, mais je n'ai vu aucune différence. Pourquoi donc? –

+1

Vous devez l'exécuter après la commande de surf, il peut y avoir un moyen de définir l'ombrage par défaut pour une nouvelle figure, mais je ne sais pas ce que c'est. –

16

Ceci est une solution plus générale, vous pouvez également modifier edgeColor après la création de la surface. Il ne s'appuie pas sur LineStyle et FaceLighting.

a= peaks(1000); 
h = surf(a) 
set(h, ‘edgecolor’,'none’) 

Remarque, j'ai fait une vidéo de 45 secondes qui montre que cela se produit et comment le réparer.

http://blogs.mathworks.com/videos/2008/08/13/matlab-basics-setting-edge-color-for-large-surface-plots/

+0

Cette méthode fonctionne également pour surfl (..). –

3

Je crois shading interp est celui que vous recherchez.

Questions connexes