how to plot a prism

81 次查看(过去 30 天)
reza hamzeh
reza hamzeh 2019-11-8
hi. i tried to plot a prism with a n-sides base. i only could plot the 2 bases (for n =8). now i have no idea how to plot the faces. plz help me
n=8;
A=ones(n+1);
z1=2;h=3;
z=A(:,1)*z1;
zz=z+h;
t = 0:2*pi/n:2*pi;
x=cos(t);
y=sin(t);
plot3(x,y,z)
hold on
plot3(x,y,zz)
r.jpg

采纳的回答

Star Strider
Star Strider 2019-11-8
Use surf instead of plot3 if you want solid-appearing sides.
Try this:
figure
surf([x;x].', [y;y].', [z,zz], 'FaceColor','g')
grid on
% axis equal
% shading('interp')
The axis and shading calls are optional. Note that the surf arguments are two-column martices.
  2 个评论
reza hamzeh
reza hamzeh 2019-11-8
thx so much.
what means [x;x].' ?
and what should i do if i want solid bases too ?
Star Strider
Star Strider 2019-11-8
My pleasure!
The [x;x].', [y;y].', and [z,zz] concatenate the vectors (and transpose them if necessary) to create equal sized matrices for surf to use. The MATLAB surface plotting functions use matrices, not vectors, so in this instance it is necessary to create matrices in order for the surf plot to be correct.
Solid bases require the patch funciton. Here are two ways to create them:
figure
surf([x;x].', [y;y].', [z,zz], 'FaceColor','g')
hold on
patch([x;x].', [y;y].', [z,zz], 'r') % Color Both Ends Red
hold off
grid on
axis equal
figure
surf([x;x].', [y;y].', [z,zz], 'FaceColor','g')
hold on
patch([x;x].', [y;y].', [zz,zz], 'r') % Color One End Red
patch([x;x].', [y;y].', [z,z], 'b') % Color Other End Blue
hold off
grid on
axis equal
Rotate the figures in the GUI to see the end colours. how to plot a prism - 2019 11 08.png

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by