2017-11-27 13 views
0

次のパッチプロットで、特定の顔(最初のものなど)を再確認して、他のすべての顔と異なる色にします。ここでは多面体のためのコードです:Matlabパッチプロットでは、多面体の特定の面を再現できますか?

clear; 
faces = [1  3  5 
     2  4  6 
     1  3  6 
     2  4  5 
     1  4  5 
     2  3  6 
     1  4  6 
     2  3  5]; 

vert = [8.6288 -1.4930 0.1330 
     -8.6288 1.4930 -0.1330 
     -1.6879 -4.9352 -6.3458 
     1.6879 4.9352 6.3458 
     2.9250 7.1153 -4.6262 
     -2.9250 -7.1153 4.6262]; 

clf 
axes(); 
xlabel('x'); 
ylabel('y'); 
zlabel('z'); 
patch('vertices',vert,'faces',faces, 'facecolor','blue', 'facealpha', 0.4); 

はパッチプロットは、それが得られます。残念ながら

enter image description here

、原因patch propertiesマニュアルに記載されているカラーマップの作業例の不足のために、私は本当に持っていますどのようにそれを行うか考えていない。

誰かが私を助けることができますか?ありがとう!

+1

きれいな解決策最も簡単な、おそらくない、(すなわち '複数回patch'呼び出す)個別の顔を描いている - あなたは色を選択することを可能にします。さもなければ、私は 'patch'を' findall'しようと思っています。あなたがそれらのいくつかを取り戻すと仮定して、どれを変更する必要があるか把握してください。 –

+0

@ Dev-iL私はすでに色を変える必要があることを知っていますので、「把握する」必要はありません。 – Vim

+0

私は彼らが返される順番を知らないので、 "出てくる"と言った... –

答えて

1
hold on 
faces2 = [1  3  5]; % the face you want to recolor 
patch('vertices',vert,'faces',faces2, 'facecolor','red', 'facealpha', 0.4); 

enter image description here

+1

私は、選択された顔が '顔'から削除されることをお勧めします。まったく同じ場所に複数の面をプロットすると、図を表示するときにグラフィカルなグリッチが発生することがあります。 –

+0

あなたは正しいです。以前のプロット(赤+青)は紫色で表示されていました。 – Haz

関連する問題