声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2049|回复: 12

[绘图技巧] 螺旋面绘制

[复制链接]
发表于 2007-5-25 10:45 | 显示全部楼层 |阅读模式

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

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

x
这是绘制螺旋面的程序,感觉编写的质量不是很好,求高手帮着修改修改
  1. R1=input('请输入外圆半径R1:[直接回车表示R1=20]\n');
  2. if isempty(R1)
  3.     R1=20;
  4. end
  5. theta=input('请输入theta:[直接回车表示theta=0]\n');
  6. if isempty(theta)
  7.     theta=0;
  8. end
  9. h=input('请输入导程h:[直接回车表示h=10]\n');
  10. if isempty(h)
  11.     h=10;
  12. end
  13. nr=330;nth=330;
  14. r=linspace(0,R1,nr);
  15. fai=linspace(0,pi/3,nth);
  16. [R,T]=meshgrid(r,fai);
  17. x=cos(fai')*r;
  18. y=sin(fai')*r;
  19. z=h*T/(2*pi)-R*tan(theta*pi/180);
  20. mesh(x,y,z);
复制代码

[ 本帖最后由 huright 于 2007-5-28 21:40 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-5-25 14:56 | 显示全部楼层
我写了两个,你可以参考一下:
%%%%%%%%%%%%%%%%
clear all
R1=20;
theta=0;
h=10;
r=linspace(0,R1);
fai=linspace(0,2*pi);
[R,T]=meshgrid(r,fai);
x=cos(fai')*r;
y=sin(fai')*r;
z=h*T/(2*pi)-R*tan(theta*pi/180);
mesh(x,y,z);

%%%%%%%%%%%%%%
clear all
R1=20;
theta=0;
h=10;
r=linspace(0,R1);
fai=linspace(0,2*pi);
[R,T]=meshgrid(r,fai);
x=cos(T).*R;
y=sin(T).*R;
z=h*T/(2*pi)-R*tan(theta*pi/180);
mesh(x,y,z)
%%%%%%%%%%%%%%%%%%

评分

1

查看全部评分

 楼主| 发表于 2007-5-27 08:44 | 显示全部楼层
首先表示感谢。不过编程思路与我的基本一样啊。我想知道对于参数曲面(含有两个变量)的编程还有没有其他的方法??比如我是对R,fai用meshgrid形成的矩阵网格,可不可以直接对x,y形成矩阵网格??
发表于 2007-5-27 09:15 | 显示全部楼层
螺旋面的方程就一个,思路自然是一样的------关键是如何使得程序简洁,图形漂亮.
你的原问题没有问"还有没有其他的方法".
另外,这种方法已经很简洁了,没有必要寻求你说的"直接对x,y形成矩阵网格".
 楼主| 发表于 2007-5-27 09:36 | 显示全部楼层
明白了,谢谢;
我最近一直想用matlab绘制齿轮的轮齿的网格曲面;但是没有进展,很是挫折感阿..
发表于 2007-5-27 15:27 | 显示全部楼层
还是你上次说的那个问题? -----改成矩阵存储z即可得到你要的网格曲面。
-----如果是新问题,不妨先贴一下你的处理。
z.jpg

[ 本帖最后由 xjzuo 于 2007-5-28 14:19 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2007-5-28 09:10 | 显示全部楼层
xjzuo的记忆真是好啊,感佩...。
就是我上次做的问题。http://forum.vibunion.com/forum/viewthread.php?tid=42318&extra=page%3D2%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D23你这个曲面怎么来的啊?能贴下代码?
谢谢........

[ 本帖最后由 huright 于 2007-5-28 09:13 编辑 ]
发表于 2007-5-28 14:22 | 显示全部楼层
我的回帖已经给出了答案-----改成矩阵存储z, 即可得到你要的网格曲面。
你试试看,仔细检查一下原程序, 相信很快就能得出曲面.
 楼主| 发表于 2007-5-28 18:43 | 显示全部楼层

谢谢

谢谢,:handshake xjzuo,能否问一下你的专业或者研究方向??
lxm.jpg
lxm2.jpg
 楼主| 发表于 2007-10-27 17:13 | 显示全部楼层
这个问题还没有很好的解决。大家帮帮忙:handshake
发表于 2007-10-27 19:11 | 显示全部楼层

回复 #10 huright 的帖子

前辈是什么问题?网格面绘制,还是螺旋面的绘制?
 楼主| 发表于 2007-10-28 17:47 | 显示全部楼层

回复 #11 花如月 的帖子

不敢妄称前辈啊。我只是学习了Matlab的很少一部分功能。而且是在大家的帮助下学习的。
我的问题是螺旋面的绘制。原来按照xjzuo的指点也会出来了,但是感觉不是很理想。
可能是我对mesh命令没有理解的原因。
发表于 2007-10-29 10:24 | 显示全部楼层
不知huright想实现什么样的效果,不妨贴个图出来看看,也好有个目的性.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-23 21:29 , Processed in 0.059207 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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