2011-03-06 68 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