how to plot a prism
조회 수: 106 (최근 30일)
이전 댓글 표시
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
채택된 답변
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
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.
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!