- 积分
- 8312
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-7-28
- 最后登录
- 1970-1-1
|
发表于 2011-9-28 11:24:07
|
显示全部楼层
如果是x-y函数的话应该用cylinder和mesh就可以解决。
t=0:pi/12:3*pi;
>> r=abs(exp(-0.25*t).*sin(t));
>> [X,Y,Z]=cylinder(r,30);
>> mesh(X,Y,Z)
如果是[x,y]数组绕y轴旋转相当于圆柱半径r=|x,
data = [
-398.10815554637100 391.8559758318630 690.066133543041
-381.07955594867500 424.8310441553090 658.180381257343
-360.31045913580800 454.9810420379280 624.438172164358
-340.77979331967200 480.0490258857480 589.871036254153
-320.70280893650000 501.0456858777910 554.852570812195
-299.82431813457700 518.2155766324390 519.823513346336
-279.71207016838500 531.7446721639860 484.240629766611
-259.24117791020500 541.8367285151120 449.014948124588
-239.00970860829800 548.6904840829760 413.976780343287
-218.96623482661700 552.4832393130960 379.260454228704
-199.13368646014500 553.3595194667750 344.899655271289
-179.49937951068700 551.4224547392160 310.901650657030
-160.05853897239600 546.7258057477280 277.229604984912
-140.73497483322400 539.2644101927670 243.852173648710
-121.15977918590600 528.9596832738090 210.871041265296
-101.65161274937100 515.6373668302500 177.947981974895
-84.00653665377710 498.9885863466380 143.830455838681
-64.35915615835300 478.4857769773050 110.443195592555
-44.23457579408930 453.3382051141650 76.621451887220
-25.81056754057310 422.9803472875990 41.709372091224
-6.74982846277030 390.5455060023060 12.023208187747
];
x = data(:,1);
y = data(:,3);
z = data(:,2);
r = sqrt(x.^2+y.^2); % 绕z轴旋转,求各点到z轴的距离r,即旋转半径
n = length(z);
alpha = linspace(-pi,pi,n);
xx = r * cos(alpha); % 前面的x,y,z是列向量,r就是列向量,列向量*行向量生成n阶矩阵
yy = r * sin(alpha);
zz = z * ones(1,n);
|
|