fill rectangles with colors
67 views (last 30 days)
Show older comments
hello ..
i used this instraction to plot rectangles with defrent colors ..i need help to fill those rectangles with colors .>>
thanks for hellllp :)
.plot([posx posx+Element(i).W posx+Element(i).W posx posx],...
[posy posy posy+Element(i).H posy+Element(i).H posy],...
'-','color',cl(i,:))
0 Comments
Answers (3)
Sudheer Bhimireddy
on 4 Aug 2020
Try this:
With the vertices you have, create surfaces and adjust the Z value to see the overlap. However, this way hides the overlapped regions and shows only the top most surface as shown in the attached image.
h=figure;
surf([0 1;0 1],[0 0;1 1],[1 1;1 1]);
hold on;
surf([0 2;0 2],[0 0;2 2],[1 1;1 1]-0.01);
surf([1.4 1.8;1.4 1.8],[1.4 1.4;1.8 1.8],[1 1;1 1]+0.01);
surf([0.7 1.2;0.7 1.2],[0.7 0.7;1.2 1.2],[1 1;1 1]+0.02);
view([0 90]);
Result:
Hope this helps.
Image Analyst
on 4 Aug 2020
Did you try the rectangle() function? It has options for 'FaceColor', and 'EdgeColor'.
3 Comments
Sudheer Bhimireddy
on 5 Aug 2020
If you are using rectangle() inside the loop and have manageable number of them, make sure to alter the 'FaceColor' and 'EdgeColor' properties each time the method is invoked.
% this way you will have more control over coloring them
edge_colors = {'k','r','b','m','g','c'};
face_colors = {'k','r','b','m','g','c'};
h = figure;
clf;
hold on;
for i =1:n
rectangle([ ],[ ],'FaceColor',face_colors{i},'EdgeColors',edge_colors{i});
end
Image Analyst
on 5 Aug 2020
Try this:
numRects = 20;
positions = rand(numRects, 4); % Positions = [x, y, width, height]
% this way you will have more control over coloring them
edge_colors = rand(numRects, 3);
face_colors = rand(numRects, 3);
h = figure;
clf;
hold on;
for k = 1 : numRects
rectangle('Position', positions(k, :), 'FaceColor',face_colors(k, :),'EdgeColor',edge_colors(k, :), 'LineWidth', 2);
end
grid on;
See Also
Categories
Find more on Graphics Object Programming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!