How to replace a rectangle with another rectangle?
Mostrar comentarios más antiguos
(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 comentarios
Walter Roberson
el 30 de En. de 2020
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.
Kirsten Moons
el 30 de En. de 2020
Respuestas (1)
Ridwan Alam
el 30 de En. de 2020
Editada: Ridwan Alam
el 30 de En. de 2020
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 comentarios
Kirsten Moons
el 30 de En. de 2020
Ridwan Alam
el 30 de En. de 2020
Editada: Ridwan Alam
el 30 de En. de 2020
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.
Categorías
Más información sobre Creating, Deleting, and Querying Graphics Objects en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!