Draw rotated rectangle with rounded edge

11 views (last 30 days)
I found the answer to drawing rotated rectangles using the solution provided here by Y Yoon. However, I am not sure how to integrate curvature to the rectangle at the edges like it can be done in the function rectangle. Any other solution will also be highly appreciated. Thanks in advance.
  4 Comments
Adam Danz
Adam Danz on 9 Jan 2021
I see.... I'll add an answer in a bit.
J AI
J AI on 9 Jan 2021
Thank you. Your help is highly appreciated.

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 9 Jan 2021
Edited: Adam Danz on 11 Jan 2021
I created a function to extend the capabilities of Matlab's rectangle() but with these additional features:
  • Position rectangles by their center points rather than by their lower left coordinate.
  • Supports creation of multiple rectangles with independent properties
  • Outputs handles to patch object rather than rectangle
  • Outputs rectangles parameters including vertices
  • Option to rotate rectangles about their centers
See the example file in rectangle2() on the file exchange.
  5 Comments
Adam Danz
Adam Danz on 10 Jan 2021
Edited: Adam Danz on 11 Jan 2021
@J AI the function has been updated to vs 1.1.0 and is a bit faster than the first version.
It now includes an example file and show how to apply different color to the rectangles. Note that you can also specify FaceColor to set the color of all rectangles.
The drawnow is required to update the properties that I'm pulling the curvature data from and as you said, it slows things down a bit. It's unavoidable with this method although I'll think about changing methods some time in the future.
Adam Danz
Adam Danz on 11 Jan 2021
Please download vs 2.0.0 which I just updated.
It fixes some minor potential errors but it also adds a lot of flexibility to set multiple rectangle properties (see example file).
I don't plan for any further updates unless errors are reported. At some point I may get around to figuring out how Matalb creates the curved edges rather than using the rectangle function to create them.

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Performance in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!