Patch Multiple Specified Colors
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dwight Schrute III
le 18 Mai 2019
Réponse apportée : Hadrien Bériot
le 24 Oct 2019
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.
0 commentaires
Réponse acceptée
Star Strider
le 18 Mai 2019
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.
0 commentaires
Plus de réponses (1)
Hadrien Bériot
le 24 Oct 2019
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))
0 commentaires
Voir également
Catégories
En savoir plus sur Polygons dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!