How to draw shapes in uiaxes on app designer?

119 views (last 30 days)
Kyle Millar
Kyle Millar on 25 Apr 2018
Edited: Hasaan Ijaz on 30 Aug 2020
I need to put a square in the middle of my 100x100 uiaxes on app designer. I tried using
rectangle(‘Position’,[25,25,50,50])
But that just creates a new window when I click run. The shape needs to be in the axes.

Accepted Answer

Marek Balaz
Marek Balaz on 2 May 2018
Hello, try to use
rectangle(app.UIAxes, 'Position', [25,25,50,50])
  3 Comments
Marek Balaz
Marek Balaz on 4 Oct 2018
Hey for drawing circles you can use rectangles with 'Curvature' set to [1 1] which will round corners of rectangle and you can achiev circle. Try to use:
rectangle(app.UIAxes, 'Position', [25,25,50,50], 'Curvature', [1 1])

Sign in to comment.

More Answers (1)

Steven Kaplan
Steven Kaplan on 1 Apr 2019
Edited: Steven Kaplan on 1 Apr 2019
Has anyone successfully used the viscircles function in app designer? I am getting the following error:
Error using uistack (line 53)
Functionality not supported with figures created with the uifigure function. For more information, see Graphics Support in App Designer.
Error in viscircles (line 165)
uistack(thinCircHdl,'up');
  5 Comments
Hasaan Ijaz
Hasaan Ijaz on 30 Aug 2020
I couldn't figure out how to use the viscircles but the rectangle function can do the same job.
By using the following for loop you will ensure that all detected circles are highlighted/filled
circlesize = 15;
cs = circlesize;
for i=1:max(size(centers))
rectangle('Parent', axisofinterest,'Position',[centers(i,:) -cs cs cs], 'Curvature',[1,1]);
end
This should work. You will obviously have to tweak the positioning parameters. Still, the viscircles is more desirable bcz its faster. If you figure out to incorporate viscircles, lemme know.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!