2017-01-17 1 views
2

Ich habe eine Form in Matlab, die wie folgt aussehen Shape image erstellt.Füllen Sie Farbe in eine Form auf 3D-Plot Matlab

npts = 14; 
z = linspace(-1,1,npts); 
omz = sqrt(1-z.^2); 

xyz=[2 3 1 0.5 2 5 10 15 20 29 32 34 10 2;1 3 8 12 20 25 27 25 23 26 26 23 5 1;z]; 
plot3(xyz(1,:),xyz(2,:),xyz(3,:),'ro','LineWidth',2); 

box on 
hold on 
fnplt(cscvn(xyz(:,[1:end 1])),'r',2) 
hold off 

Ich muss verschiedene Farben in dieser Form füllen. Wie kann ich das machen?

+0

"verschiedene Farben". Wie unterschiedlich? flache Einzelfarben oder willst du etwas fortgeschritteneres Zeug? Müssen Sie auch die gekrümmte Funktion oder nur die Punkte ausfüllen? Mit anderen Worten: Brauchen Sie diese quadratische Krümmung oder können Sie sie mit geraden Linien verbinden? –

+0

@AnderBiguri Ich möchte die Kurve mit Graustufen betreten. Die Farben werden vom Benutzer entschieden. –

Antwort

1
  1. Nehmen Sie den Ausgang .
  2. ändern Sie die Farbabbildung zu gray.
  3. Verwenden Sie fill3, um den Patch einzufärben.

Alle zusammen:

c = fnplt(cscvn(xyz(:,[1:end 1])),'r',2); 
colormap gray 
fill3(c(1,:),c(2,:),c(3,:),1:size(c,2)) 

das Ergebnis:

3D_patch_color

+0

@swapnil gandhi, beantwortet das deine Frage? – EBH

+0

Teilweise, weil Benutzer entscheidet, welche Farbe auf welchen Teil der Form setzen? –

+0

@swapnilgandhi, Ich brauche hier ein Beispiel für die Eingabe vom Benutzer und die angeforderte Ausgabe auf der Form. – EBH

Verwandte Themen