螺旋面绘制
这是绘制螺旋面的程序,感觉编写的质量不是很好,求高手帮着修改修改R1=input('请输入外圆半径R1:[直接回车表示R1=20]\n');if isempty(R1)
R1=20;
end
theta=input('请输入theta:[直接回车表示theta=0]\n');
if isempty(theta)
theta=0;
end
h=input('请输入导程h:[直接回车表示h=10]\n');
if isempty(h)
h=10;
end
nr=330;nth=330;
r=linspace(0,R1,nr);
fai=linspace(0,pi/3,nth);
=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);
[ 本帖最后由 huright 于 2007-5-28 21:40 编辑 ] 我写了两个,你可以参考一下:
%%%%%%%%%%%%%%%%
clear all
R1=20;
theta=0;
h=10;
r=linspace(0,R1);
fai=linspace(0,2*pi);
=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);
=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)
%%%%%%%%%%%%%%%%%% 首先表示感谢。不过编程思路与我的基本一样啊。我想知道对于参数曲面(含有两个变量)的编程还有没有其他的方法??比如我是对R,fai用meshgrid形成的矩阵网格,可不可以直接对x,y形成矩阵网格?? 螺旋面的方程就一个,思路自然是一样的------关键是如何使得程序简洁,图形漂亮.
你的原问题没有问"还有没有其他的方法".
另外,这种方法已经很简洁了,没有必要寻求你说的"直接对x,y形成矩阵网格". 明白了,谢谢;
我最近一直想用matlab绘制齿轮的轮齿的网格曲面;但是没有进展,很是挫折感阿.. 还是你上次说的那个问题? -----改成矩阵存储z即可得到你要的网格曲面。
-----如果是新问题,不妨先贴一下你的处理。
[ 本帖最后由 xjzuo 于 2007-5-28 14:19 编辑 ] 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 编辑 ] 我的回帖已经给出了答案-----改成矩阵存储z, 即可得到你要的网格曲面。
你试试看,仔细检查一下原程序, 相信很快就能得出曲面.
谢谢
谢谢,:handshake xjzuo,能否问一下你的专业或者研究方向?? 这个问题还没有很好的解决。大家帮帮忙:handshake回复 #10 huright 的帖子
前辈是什么问题?网格面绘制,还是螺旋面的绘制?回复 #11 花如月 的帖子
不敢妄称前辈啊。我只是学习了Matlab的很少一部分功能。而且是在大家的帮助下学习的。我的问题是螺旋面的绘制。原来按照xjzuo的指点也会出来了,但是感觉不是很理想。
可能是我对mesh命令没有理解的原因。 不知huright想实现什么样的效果,不妨贴个图出来看看,也好有个目的性.
页:
[1]