Plot a Cube centered at the origin

159 visualizaciones (últimos 30 días)
Robert Falk
Robert Falk el 23 de Feb. de 2019
Respondida: melvin mariadass el 29 de Jul. de 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!

Respuestas (3)

Star Strider
Star Strider el 23 de Feb. de 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 comentario
EMMANUEL VIRATEL
EMMANUEL VIRATEL el 29 de Mzo. de 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

Iniciar sesión para comentar.


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

melvin mariadass
melvin mariadass el 29 de Jul. de 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

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by