How to replace a rectangle with another rectangle?
1 次查看(过去 30 天)
显示 更早的评论
(Or change the properties of the first rectangle)
I had 2 ideas of how to replace the rectangle, but both don't work. But here they are:
Idea 1:
r = findobj('FaceColor', [0.2 0.2 0.7])
r.FaceColor = [0.2 0.2 0.2]
Idea 2:
r = rectangle(findobj('FaceColor', [0.2 0.2 0.7]))
r.FaceColor = [0.2 0.2 0.2]
Idea 3:
r = findobj('FaceColor', [0.2 0.2 0.7])
rectangle('Position',r.Position,'LineWidth',1, 'FaceColor', [0.2 0.2 0.7])
I think you can't story a rectangle in a variable but I'm not sure and don't know how to do it otherwise. I want to change the facecolor of the rectangle with the facecolor [0.2 0.2 0.7].
2 个评论
Walter Roberson
2020-1-30
The form in Idea 1 worked when I tried it, if the goal is to change the color of an existing rectangle without creating a new one.
回答(1 个)
Ridwan Alam
2020-1-30
编辑:Ridwan Alam
2020-1-30
I tried this, it worked for me:
r = rectangle('FaceColor', [0.2 0.2 0.7]);
r.FaceColor = [0.2 0.2 0.2];
2 个评论
Ridwan Alam
2020-1-30
编辑:Ridwan Alam
2020-1-30
Even this worked:
r = rectangle('FaceColor', [0.2 0.2 0.7]); % created the rectangle
r1 = findobj('FaceColor', [0.2 0.2 0.7]); % finds the rectangle handle
r1.FaceColor = [0.2 0.2 0.2]; % change rectangle property using handle
Please let me know which part is not working for you.
Btw, if the rectangle doesn't exist, findobj() returns an empty handle.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Object Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!