How can I repeat this shape NxN times with a certain spacing between repeated shapes?

1 view (last 30 days)
I attached a shape of square that I need to repeat NxN times to form basically an array. I need to have spacing between shapes as an option as well.
Thank you in advance
  2 Comments
Rik
Rik on 9 Jun 2020
Probably the easiest way is to create an array for one of the corners and then use a loop to create all objects based on that coordinate offset.
Love Matlab
Love Matlab on 9 Jun 2020
x1=0.25;
x2=.75;
y1=0.25;
y2=.75;
x = [x1, x2, x2, x1, x1];
y = [y1, y1, y2, y2, y1];
plot(x, y, 'b-');
xlim([-1, 2]);
ylim([-1, 2]);
patch(x,y,'b')
Here is my code for the square. How can I make an array with one of the corners?
Thank you!!

Sign in to comment.

Answers (1)

Rik
Rik on 9 Jun 2020
Make the coordinates depend on x1 and y1:
x1=0.25;
y1=0.25;
draw_line_and_patch(x1,y1)
function draw_line_and_patch(x1,y1,width,height,ax)
if nargin<3,width=0.5;end
if nargin<4,height=0.5;end
if nargin<5,ax=gca;end%create axes object if missing
x2=x1+width;
y2=y1+height;
x = [x1, x2, x2, x1, x1];
y = [y1, y1, y2, y2, y1];
plot(x, y, 'b-','Parent',ax);
xlim(ax,[-1, 2]);
ylim(ax,[-1, 2]);
patch(x,y,'b','Parent',ax)
end
Now you have a function that creates a box for you, you can easily loop through a grid of coordinates you create with meshgrid, ndgrid, or any way you prefer.

Community Treasure Hunt

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

Start Hunting!