How to draw a square with specific plot points
484 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Paul
am 8 Okt. 2013
Kommentiert: Pranav
am 29 Jul. 2024
I'm trying to create two squares, one larger one, and the other within it.
I attempted to create one using matrices. I create one with x = [0 0 1 1] and y = [0 1 1 0]
I wanted a line to connect each one of the points, to thus create a line. However, when I did that, I only received three lines connect between the dots for some reason. The bottom points (0,0) and (1,0) for some reason were not connected. I then attempted to make a second square, and the same thing happened, with the two lower points in regards to their Y points did not connect. I tried using the rectangle function as well, but can't get a square within a square to appear. Any help would be great. Thanks
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 8 Okt. 2013
Bearbeitet: Image Analyst
am 29 Jul. 2024
You need 5 points - the last one is to "close off" the square, otherwise it won't be closed because you didn't draw the line back to the starting point. So, try this
% Draw first, outer rectangle.
x1=0;
x2=1;
y1=0;
y2=1;
x = [x1, x2, x2, x1, x1];
y = [y1, y1, y2, y2, y1];
plot(x, y, 'b-', 'LineWidth', 3);
hold on;
% Draw the second, inner rectangle.
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, 'r-', 'LineWidth', 3);
% Define the plot region outer limits of the axes.
xlim([-0.5, 1.5]);
ylim([-0.5, 1.5]);
grid on;
axis equal % Make sure the aspect ratio is correct so that they look like squares.
2 Kommentare
Image Analyst
am 8 Okt. 2013
I think the way I did it is easier to understand than rectangle. In my mind I just visualize starting at the upper left corner and marching around the square in a clockwise fashion. First I do the x's then I do the y's. And so it's really quick for me to construct the 5 element x and y matrices.
Weitere Antworten (4)
Camilo Malagon Nieto
am 8 Mai 2019
Worth to say that there is a function now to make a rectangle and smooth the corners.
Cheers,
1 Kommentar
Steven Lord
am 29 Jul. 2024
x = [0 0 1 1];
y = [0 1 1 0];
P1 = polyshape(x, y);
plot(P1)
axis square
P2 = translate(scale(P1, 0.5), [0.25 0.25]);
figure
plot([P1, P2])
axis square
0 Kommentare
NAGENDRA KUMAR
am 12 Sep. 2017
Verschoben: Image Analyst
am 29 Jul. 2024
Please write this code
x = [0 0 1 1 0];
y = [0 1 1 0 0];
plot(x,y,'r', 'LineWidth',3)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Graphics Performance finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!