MATLAB 空间圆柱面 surf函数

function [ ] = plotcylinder( )
sym pi;
beta=pi/4;
r=3.0;%圆柱半径
or=[1.0;1.0;1.0];%圆柱底面原点
Mij=roty(rad2deg(beta));%圆柱绕Y轴旋转角度beta矩阵      
height = 20;%圆柱高度         
num_points = 100;   
theta = linspace(0, 2*pi, num_points);  
z = linspace(0, height, num_points);     
[theta_grid, z_grid] = meshgrid(theta, z);
x = r * cos(theta_grid);
y = r * sin(theta_grid);
xx=[];
yy=[];
zz=[];
n1=size(x);
for i=1:1:n1(1,1)
    for j=1:1:n1(1,2)
        xij=x(i,j);
        yij=y(i,j);
        zij=z_grid(i,j);
        Pij=[xij;yij;zij];
        PijB=Mij*Pij;
        xx(i,j)=PijB(1,1)+or(1,1);
        yy(i,j)=PijB(2,1)+or(2,1);
        zz(i,j)=PijB(3,1)+or(3,1);
    end
end
surf(xx, yy, zz);
colormap([0 1 0]);
hold on;
hold all;
fill3(xx(1,:), yy(1,:), zz(1,:), 'b');
fill3(xx(end,:), yy(end,:), zz(end,:), 'b');

end

MATLAB 空间圆柱面 surf函数_第1张图片

你可能感兴趣的:(MATLAB,matlab,空间圆柱面)