フィルターのクリア

how to plot a prism

106 ビュー (過去 30 日間)
reza hamzeh
reza hamzeh 2019 年 11 月 8 日
コメント済み: Star Strider 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 Center および File ExchangeSurface and Mesh Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by