声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2036|回复: 10

[绘图技巧] 如何用离散点作出圆柱体的曲面图???

[复制链接]
发表于 2006-8-28 19:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
x=[49.9987
40.4444
15.457
-15.4434
-40.4497
-50.007
-40.4476
-15.4636
15.4482
40.4669
50.0022
49.9943
40.4553
15.4494
-15.4457
-40.4527
-49.9933
-40.4459
-15.4498
15.4494
40.4521
49.999
49.9996
40.4543
15.4469
-15.4595
-40.4509
-50.0036
-40.4509
-15.4465
15.4495
40.443
49.998
49.9993
40.4392
15.444
-15.4599
-40.4453
-50.0007
-40.4453
-15.4481
15.4532
40.4475
50.0014
49.9993
40.4472
15.4475
-15.4499
-40.4598
-50.0069
-40.4499
-15.4435
15.4527
40.4486
49.9998
];
y=[0.0004
29.3991
47.5525
47.5575
29.3889
-0.004
-29.3887
-47.5476
-47.5611
-29.3947
-0.001
0.0023
29.3846
47.5496
47.5496
29.3826
0.0052
-29.3849
-47.556
-47.5495
-29.3828
0.0016
0.0043
29.3899
47.5529
47.5525
29.3846
-0.0037
-29.3894
-47.5479
-47.5558
-29.3819
-0.0041
0.0032
29.3857
47.5485
47.5505
29.3904
0.0094
-29.3887
-47.5549
-47.5503
-29.3953
-0.0005
0.0022
29.3878
47.552
47.5537
29.3914
0.0084
-29.3793
-47.5493
-47.5594
-29.3874
-0.0028
];
z=[0
0
0
0
0
0
0
0
0
0
0
10
10
10
10
10
10
10
10
10
10
10
20
20
20
20
20
20
20
20
20
20
20
30
30
30
30
30
30
30
30
30
30
30
40
40
40
40
40
40
40
40
40
40
40
]
如何使用以上数据作出圆柱体的曲面图来,本来打算用极坐标,可好像z是rh和theta的函数才行吧?请高手指教(该数据作出的图应是圆柱)
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-8-28 19:57 | 显示全部楼层
插值画出来就行,不用曲面拟合,请高手指教??
发表于 2006-8-28 21:20 | 显示全部楼层
可以尝试一下griddata
 楼主| 发表于 2006-8-28 21:33 | 显示全部楼层
校长,我刚才试了,画出的图形不是圆柱,本来离散点组成的是圆柱体,可一变成曲面就成了多面体,为什么呢?
 楼主| 发表于 2006-8-29 09:09 | 显示全部楼层
哪位大哥能帮忙画出个圆柱体曲面图,谢谢啦
发表于 2006-8-29 10:59 | 显示全部楼层
画任意坐标、任意位置处的圆柱体貌似比较困难,但是画底面圆心为坐标原点的圆柱体还是很简单的,用不着费这么大劲拟合。
  1. function PlotConeShape
  2. clc;
  3. load Data.mat         %此处为你所给出的数据
  4. [X,Y,Z]=cylinder(50);
  5. hss=surf(X,Y,40*Z);
  6. set(gcf,'Menubar','none','Name','Cylinders','NumberTitle','off');  
  7. set(hss,'edgecolor','none','facecolor','r')
  8. alpha(.5);  
  9. alphamap('rampdown');   
  10. axis square  
复制代码
11111.jpg

评分

1

查看全部评分

 楼主| 发表于 2006-8-29 11:25 | 显示全部楼层
谢谢啦,我去试试
 楼主| 发表于 2006-8-29 15:58 | 显示全部楼层
cylinder 是生成数据的啊,那我的数据好像都没用上啊?
我是这么做的:x=[...];y=[...];z=[...];rh=sqrt(x.^2+y.^2);
th=atan2(y,x);z=z;
zi=0:0.5:40;thi=-pi:pi/100:pi;
[Zi,Thi]=meshgrid(zi,thi);
Rhi=griddata(th,z,rh,Thi,Zi);
[X,Y,Z] = pol2cart(Thi,Rhi,Zi);
mesh(X,Y,Z);但结果少了一小部分,不知道怎么补全?再次麻烦大家给予指点
 楼主| 发表于 2006-8-29 16:09 | 显示全部楼层
这个是圆柱体的图,少了一部分,好像是因为tan在此处的值为无穷的原因,不知道怎么补全,请大家帮忙,谢谢啦
yuanzhu.jpg
 楼主| 发表于 2006-8-29 16:42 | 显示全部楼层
虽然不明白为什么会有缺口,但我用另外一种插值方法(V4)得出了完整的图形,总算完成了,谢谢大家了:@)
yuanzhu_v4.jpg

评分

1

查看全部评分

发表于 2006-8-29 20:30 | 显示全部楼层
en,值得学习。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 18:32 , Processed in 0.082120 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表