Patch Multiple Specified Colors

조회 수: 6 (최근 30일)
Dwight Schrute III
Dwight Schrute III 2019년 5월 18일
답변: Hadrien Bériot 2019년 10월 24일
Is there a way to create more than one polygon and fill them with different colors specified by the user? I know that with patch function, there is a way to create random colors for them, and there is a way to create just one color for all the polygons, but I don't know how to specify that, for instance, I want the first polygon to be red and the second to be green. For example:
X = [0 0; 0 0; 4 4];
Y = [0 4; 3 7; 0 4];
C = [.25; .75]
p = patch(X,Y,C)
This creates two triangles, with the triangle on top as yellow and the triangle on the bottom as purple. But how do I make it such that the triangle on top is red, and the triangle on the bottom is green? Ideally, this would be accomplished without a loop?
Long story short: I want to be able to apply conditional formatting to a wide array of values. But it seems cumbersome to do them one color at a time.

채택된 답변

Star Strider
Star Strider 2019년 5월 18일
The simplest way is probably to define a colormap for the figure.
Try this:
X = [0 0; 0 0; 4 4];
Y = [0 4; 3 7; 0 4];
C = [.25; .75];
colormap([0 1 0; 1 0 0]);
p = patch(X,Y,C);
There are likely a number of differnt ways to do this, depending on the result you want. I encourage you to experiment.

추가 답변 (1개)

Hadrien Bériot
Hadrien Bériot 2019년 10월 24일
I personally use a random vector
FaceValue = rand(1,size(Element,2))';
patch('Faces',Element','Vertices',Coord','FaceVertexCData',FaceValue,'FaceColor','flat','EdgeColor','k');
colormap(hsv(100))

카테고리

Help CenterFile Exchange에서 Polygons에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by