我想繪製一個二維網格的三角形。我想根據給定的正數標量的數組A
爲每個三角形着色,每個三角形使用一個;例如,假設A
包含每個三角形的面積,並且我希望大三角形比較小的三角形更粉紅。我知道如何做到這一點:顏色三角形有一些例外
patch('Faces',tri,'Vertices',V,'FaceColor','flat',
'FaceVertexCData',A,...
'CDataMapping','scaled');
colormap(pink);
不過,我也有另外一個布爾數組B
,每個三角形一個布爾值。例如,它標記哪個三角形是等腰三角形。 如果一個三角形在B
中標記爲1
,我想爲它着黃色。
我認爲這可以通過類似A(B==1)=-1
,更改colormap
和巧妙設置caxis
來實現,但這是最優雅的方式嗎?
如果'A = [1 2 3 10000]'那麼我不認爲這個技巧會起作用。你建議'A(B)= 10001',但是'10001'和'10000'會映射到相同的顏色 – olamundo
@noam當然,這個例子是在[0,1]範圍內的A。如果確保A(B)設置爲「足夠大」的值,該怎麼辦? – angainor
當然可以這樣做,但這些正是我希望避免的那種技巧。 爲了完整起見,「足夠大」本身並不夠好,如果你採取'A = [1 2 3]'和'足夠大'的加法,A(B)= 100000 ',那麼現在'1','2','3'映射到相同的顏色。找到正確的值並不難,但我希望儘可能避免。 – olamundo