how to plot a prism
23 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
reza hamzeh
il 8 Nov 2019
Commentato: Star Strider
il 8 Nov 2019
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)

0 Commenti
Risposta accettata
Star Strider
il 8 Nov 2019
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 Commenti
Star Strider
il 8 Nov 2019
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.
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. 

Più risposte (0)
Vedere anche
Categorie
Scopri di più su Surface and Mesh Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!