2014-06-25 36 views
1

我有一個半徑爲1的圓柱體。我需要繪製函數f(theta,z)= exp(theta-0.2 * z),其中theta是方位角,z是沿着圓柱體的高度,這將如何繪製在gnuplot?我希望看到圓柱體。使用gnuplot繪製圓柱座標中的方程

+0

你的函數f(θ,z)是否給出徑向座標?否則,你會遇到4D問題,從可視化的角度來看,這非常複雜。 – Miguel

+0

是的,它給出了徑向座標 –

回答

2

假設你的函數f(THETA,z)中給出了徑向座標,這可在參數化模式,其中變量uv被分配給thetaz,分別進行:

set parametric 

set urange [0:2*pi] 
set vrange [-1:1] 

f(u,v)=exp(u-0.2*v) 

set xrange [-2:2] 
set yrange [-2:2] 
set zrange [-2:2] 

set isosamples 100,10 

splot cos(u),sin(u),v title "cylinder", \ 
0.01*cos(u)*f(u,v),0.01*sin(u)*f(u,v),v title "function (scaled down)" 

enter image description here

注意我縮小了函數的範圍(0.01 * f而不是f),因爲它與圓柱體的大小相比太大了。

set parametric使用座標(x,y,z)的三元組,其中每個座標以獨立變量uv給出。在你的情況下(圓柱座標)u = theta,所以x = rcos(u)和y = rsin(u); v = z。由於你的函數f(或0.01 * f)給出徑向座標,x = f * cos(u)和y = f * sin(u)。