这个问题虽然简单,但是要弄出来还是要费点儿功夫的。我写了一个给你参考。
function [] = drawshangxing(alpha,r1,r2,h)
colormap([0.3,0.8,0.3]);
[a,z]=ndgrid((0:0.02*pi:alpha/180*pi),0:5:h);
x=cos(a);
y=sin(a);
[hang,lie] = size(x);
x1 = r1*x;
y1 = r1*y;
x2 = r2*x;
y2 = r2*y;
surf([x1;flipud(x2);x1(1,:)],[y1;flipud(y2);y1(1,:)],[z;z;z(1,:)]);
hold on;
surf([x1(:,1),x2(:,1)],[y1(:,1),y2(:,1)],h*ones(hang,2));
surf([x1(:,1),x2(:,1)],[y1(:,1),y2(:,1)],zeros(hang,2));
axis equal
end
参数介绍
alpha,圆形角(扇面角),以x轴为基准,逆时针旋转的角度。r1外径,r2内径,h高度
比如画一个30°,外径为136,内径为40,高度为20的
调用格式为
drawshangxing(30,136,40,20)
结果为