Plot a Cube centered at the origin

328 Ansichten (letzte 30 Tage)
Robert Falk
Robert Falk am 23 Feb. 2019
Beantwortet: melvin mariadass am 29 Jul. 2020
Hi,
I am trying to plot a cube with side lengths a, b and c centered at the origin but am having trouble to make it work. I have tried to make several 2D plots and plot them together but it doesn't really work. I hope someone here will be able to help me.
Thank You!

Antworten (3)

Star Strider
Star Strider am 23 Feb. 2019
This should get you started:
a = -pi : pi/2 : pi; % Define Corners
ph = pi/4; % Define Angular Orientation (‘Phase’)
x = [cos(a+ph); cos(a+ph)]/cos(ph);
y = [sin(a+ph); sin(a+ph)]/sin(ph);
z = [-ones(size(a)); ones(size(a))];
figure
surf(x, y, z, 'FaceColor','g') % Plot Cube
hold on
patch(x', y', z', 'r') % Make Cube Appear Solid
hold off
axis([ -1 1 -1 1 -1 1]*1.5)
grid on
Plot a Cube centered at the origin - 2019 02 23.png
This plots the basic cube. UIse the rotate (link) function to change its orientation.
Experiment to get the result you want.
  1 Kommentar
EMMANUEL VIRATEL
EMMANUEL VIRATEL am 29 Mär. 2020
Hello startrider
I'm emmanuel, a student of Toulouse (FRANCE) Pleased can you send me a script that draw the same cube as you, but that use a plot function from MATLAB not surf fonction
i will explain you later why,
Thanks a lot for your answer
Good luck with the coronavirus
Emmanuel

Melden Sie sich an, um zu kommentieren.


alejandro perez
alejandro perez am 2 Feb. 2020
In the description of this video is the code of a cube which rotates, moves and grows up.

melvin mariadass
melvin mariadass am 29 Jul. 2020
Below is a solution to plot a cube using x,y,z coordinate using plot3d. Credit goes to Aggregate packing generator
b = 50; %inner square of the hollow beam for casting
l = 100;
x = [0 b b 0 ] %0 10 10 breadth-10 breadth-10 10];
y = [0 l];
z = [0 0 b b ] %0 10 10 breadth-10 breadth-10 10];
m = length(x);
xr=[x x(1)];
yr1=y(1)*ones(m+1,1);
zr=[z z(1)];
plot3(xr,yr1,zr,'k');
hold on
yr2=y(2)*ones(m+1,1);
plot3(xr,yr2,zr,'k');
hold on
for i=1:1:m
plot3([x(i) x(i)],y,[z(i) z(i)],'k');
end
hold on

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by