How do I plot a square given the length of the sides and the center of x and y?

6 Ansichten (letzte 30 Tage)
I have this code to graph a square based on the input data that the user enters, which is L (length of the sides) and x0, y0 (the center of X and Y). When my square is graphed it comes out with these lines and I don't know how to remove or limit them.
r = input("Enter the radius of the circle: ");
l = input("Enter the length of the sides of the square: ");
x0 = input("Enter the center of x: ");
y0 = input("Enter the center of y: ");
%SQUARE
figure(1),clf;
x = linspace(0,1,5);
y = zeros(1,5);
hold on
x = cosd(0) * l * x - sind(0) * l * y;
y = sind(0) * l * x + cosd(0) * l * y;
x2 = cosd(0) * l * x - sind(0) * l * y;
y2 = l + sind(0) * l * x + cosd(0) * l * y;
x3 = cosd(90) * l * x - sind(90) * l * y;
y3 = sind(90) * l * x + cosd(90) * l * y;
x4 = l + cosd(90) * l * x - sind(90) * l * y;
y4 = sind(90) * l * x + cosd(90) * l * y;
plot(x,y)
plot(x2,y2)
plot(x3,y3)
plot(x4,y4)
hold off
axis equal

Akzeptierte Antwort

Matt J
Matt J am 11 Nov. 2021
One way,
[x0,y0,L]=deal(2,1,4); %example input parameters
p=polyshape( [x0,y0]+[-1 -1; -1 1; 1 1; 1 -1]*L/2 );
plot(p)

Weitere Antworten (0)

Kategorien

Mehr zu Install Products 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!

Translated by