2011-03-06 32 views
2

我试图旋转2D曲线来生成3D曲面图。通过曲线的旋转生成3D绘图

我使用

[X,Z,Y] = cylinder(u); 
surf(X,Y,Z), axis square 

这种尝试,但是,围绕我周围的错误轴曲线。我如何去改变轴?

非常感谢。

回答

4

使滚筒旋转的轴,你可以简单地改变X,Y的顺序,和Z

[X,Y,Z] = cylinder(u); 

surf(X,Y,Z) %# rotation around Z 
surf(Z,X,Y) %# rotation around X 
surf(Y,Z,X) %# rotation around Y 

编辑

要改变你的曲线的旋转轴,你必须计算表面。例如,要以围绕Y轴旋转alpha = 0:0.1:piy = sin(alpha),你可以写

r = 0:0.1:pi; 
z = sin(r); 
theta = 0:pi/20:2*pi; 
xx = bsxfun(@times,r',cos(theta)); 
yy = bsxfun(@times,r',sin(theta)); 
zz = repmat(z',1,length(theta)); 
dfig,surf(xx,yy,zz) 
axis equal 

enter image description here

+0

不,仅更改显示的情节的方向! – RanUsr 2011-03-06 03:30:41

+0

@Nan Shan:好的,我现在明白了。我添加了另一种方法来改变旋转轴。 – Jonas 2011-03-06 03:53:12

+0

这是旋转乔纳斯的绝妙方式。谢谢。问题是,当我使用你的方法时,我有多条曲线旋转和矩阵乘法失败。它工作得很好,我用我的代码编辑了这个问题。 – RanUsr 2011-03-06 04:55:29