How to replace a rectangle with another rectangle?

(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 Commenti

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.
Okay, thank you for your feedback. Then I don't know why it doesn't work for me.

Accedi per commentare.

Risposte (1)

Ridwan Alam
Ridwan Alam il 30 Gen 2020
Modificato: Ridwan Alam il 30 Gen 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 Commenti

I dont know the position of the rectangle, thats why I use findobj.
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.

Accedi per commentare.

Categorie

Scopri di più su Creating, Deleting, and Querying Graphics Objects in Centro assistenza e File Exchange

Prodotti

Release

R2019b

Richiesto:

il 29 Gen 2020

Modificato:

il 30 Gen 2020

Community Treasure Hunt

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

Start Hunting!

Translated by